Merge branch 'develop' of s412146/node-raspberry-server into master

This commit is contained in:
Dawid Kubicki 2019-01-14 10:09:49 +00:00 committed by Gogs
commit ab3375e9eb
5 changed files with 214 additions and 105 deletions

10
deviceSchema.js Normal file
View File

@ -0,0 +1,10 @@
const mongoose = require("mongoose");
const deviceSchema = new mongoose.Schema(
{
ip: String,
name: String,
lastStatus: String
},
{ timestamps: true }
);
module.exports = mongoose.model("deviceSchema", deviceSchema);

View File

@ -2,7 +2,10 @@ const express = require("express");
const cors = require("cors"); const cors = require("cors");
const mongoose = require("mongoose"); const mongoose = require("mongoose");
const mongoDB = "mongodb://127.0.0.1/chillroom-database"; const mongoDB = "mongodb://127.0.0.1/chillroom-database";
const dbSchema = require("./dbScheme"); const deviceSchema = require("./deviceSchema");
const bodyParser = require("body-parser");
const statusSchema = require("./statusSchema");
mongoose.connect( mongoose.connect(
mongoDB, mongoDB,
{ useNewUrlParser: true } { useNewUrlParser: true }
@ -10,18 +13,34 @@ mongoose.connect(
const app = express(); const app = express();
app.use(cors()); app.use(cors());
app.options("*", cors()); app.options("*", cors());
app.use(bodyParser.json());
const port = 3000; const port = 3000;
const save_data = async time => {
try {
const devices = await deviceSchema.find({}).select("name ip");
console.log("DEVICES => " + devices);
for (const { ip, _id } of devices) {
const value_data = await getScript(ip);
const data = JSON.parse(value_data);
await statusSchema.findOneAndUpdate(
{ device: _id },
{
$push: { status: { value: data.Sensors[0].Switch, time } }
}
);
await deviceSchema.findByIdAndUpdate(_id, {
lastStatus: data.Sensors[0].Switch
});
}
} catch (error) {
console.log("ERROR z CATCHA => " + error);
}
};
let interval = setInterval(() => { let interval = setInterval(() => {
(async url => { save_data(Date.now());
const value_data = await getScript(url);
console.log(value_data);
// const item = new dbSchema({
// name: value_data.split(",")[0],
// value: value_data.split(",")[1]
// });
// await item.save();
})("http://localhost:3000/chillroom-server?ip=192.168.8.107");
}, 5000); }, 5000);
const getScript = url => { const getScript = url => {
@ -32,6 +51,8 @@ const getScript = url => {
url = "http://" + url + "/json"; url = "http://" + url + "/json";
console.log("DATA URL => " + url);
client client
.get(url, resp => { .get(url, resp => {
let data = ""; let data = "";
@ -48,7 +69,7 @@ const getScript = url => {
}); });
}) })
.on("error", err => { .on("error", err => {
reject(err); resolve('{"Sensors": [{ "Switch": 2 }]}');
}); });
}); });
}; };
@ -65,18 +86,22 @@ app.get("/stop", (req, res) => {
res.json({ message: "Przestalem dzialac :<" }); res.json({ message: "Przestalem dzialac :<" });
}); });
app.get("/status/:id", async (req, res) => {
const data = await statusSchema
.findOne({
device: mongoose.Types.ObjectId(req.params.id)
})
.select("status");
const status = data.status.sort((a, b) => {
return b.time - a.time;
});
res.json(status);
});
app.get("/start", (req, res) => { app.get("/start", (req, res) => {
if (interval === null) { if (interval === null) {
interval = setInterval(() => { interval = setInterval(() => {
(async url => { save_data(Date.now());
const value_data = await getScript(url);
console.log(value);
const item = new dbSchema({
name: value_data.split(",")[0],
value: value_data.split(",")[1]
});
await item.save();
})("http://localhost:3000/chillroom-server?ip=192.168.8.107");
}, 5000); }, 5000);
res.json({ message: "Zaczalem dzialac :>" }); res.json({ message: "Zaczalem dzialac :>" });
@ -86,10 +111,27 @@ app.get("/start", (req, res) => {
}); });
app.get("/all", async (req, res) => { app.get("/all", async (req, res) => {
const items = await dbSchema.find({}); const items = await deviceSchema.find({});
res.json(items); res.json(items);
}); });
app.post("/device", async (req, res) => {
console.log(req.body);
const newDevice = await deviceSchema.create({
name: req.body.name,
ip: req.body.ip
});
await statusSchema.create({ device: newDevice });
res.json({ Sukces: "Dodaje OK" });
});
app.delete("/device/:ip", async (req, res) => {
console.log(req.body);
const newDevice = await deviceSchema.findOneAndRemove({ ip: req.params.ip });
await statusSchema.findOneAndRemove({ device: newDevice });
res.json({ Sukces: "Usuwa OK" });
});
app.listen(port, () => app.listen(port, () =>
console.log(`Chillroom server nasluchuje na porcie ${port}!`) console.log(`Chillroom server nasluchuje na porcie ${port}!`)
); );

205
package-lock.json generated
View File

@ -19,17 +19,17 @@
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
}, },
"async": { "async": {
"version": "2.6.1", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"requires": { "requires": {
"lodash": "^4.17.10" "lodash": "^4.14.0"
} }
}, },
"bluebird": { "bluebird": {
"version": "3.5.1", "version": "3.5.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw="
}, },
"body-parser": { "body-parser": {
"version": "1.18.3", "version": "1.18.3",
@ -49,9 +49,14 @@
} }
}, },
"bson": { "bson": {
"version": "1.1.0", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz",
"integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg=="
},
"buffer-shims": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
}, },
"bytes": { "bytes": {
"version": "3.0.0", "version": "3.0.0",
@ -78,6 +83,11 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
}, },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cors": { "cors": {
"version": "2.8.5", "version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
@ -115,6 +125,11 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
}, },
"es6-promise": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
"integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q="
},
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@ -186,6 +201,11 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
}, },
"hooks-fixed": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz",
"integrity": "sha512-YurCM4gQSetcrhwEtpQHhQ4M7Zo7poNGqY4kQGeBS6eZtOcT3tnNs01ThFa0jYBByAiYt1MjMjP/YApG0EnAvQ=="
},
"http-errors": { "http-errors": {
"version": "1.6.3", "version": "1.6.3",
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
@ -215,27 +235,31 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
}, },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"kareem": { "kareem": {
"version": "2.3.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz", "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.5.0.tgz",
"integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg==" "integrity": "sha1-4+QQHZ3P3imXadr0tNtk2JXRdEg="
}, },
"lodash": { "lodash": {
"version": "4.17.11", "version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
}, },
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
},
"media-typer": { "media-typer": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
}, },
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
"optional": true
},
"merge-descriptors": { "merge-descriptors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@ -265,73 +289,69 @@
} }
}, },
"mongodb": { "mongodb": {
"version": "3.1.10", "version": "2.2.34",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.10.tgz", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz",
"integrity": "sha512-Uml42GeFxhTGQVml1XQ4cD0o/rp7J2ROy0fdYUcVitoE7vFqEhKH4TYVqRDpQr/bXtCJVxJdNQC1ntRxNREkPQ==", "integrity": "sha1-o09Zu+thdUrsQy3nLD/iFSakTBo=",
"requires": { "requires": {
"mongodb-core": "3.1.9", "es6-promise": "3.2.1",
"safe-buffer": "^5.1.2" "mongodb-core": "2.1.18",
"readable-stream": "2.2.7"
} }
}, },
"mongodb-core": { "mongodb-core": {
"version": "3.1.9", "version": "2.1.18",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.9.tgz", "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz",
"integrity": "sha512-MJpciDABXMchrZphh3vMcqu8hkNf/Mi+Gk6btOimVg1XMxLXh87j6FAvRm+KmwD1A9fpu3qRQYcbQe4egj23og==", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=",
"requires": { "requires": {
"bson": "^1.1.0", "bson": "~1.0.4",
"require_optional": "^1.0.1", "require_optional": "~1.0.0"
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
} }
}, },
"mongoose": { "mongoose": {
"version": "5.4.3", "version": "4.13.15",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.4.3.tgz", "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.13.15.tgz",
"integrity": "sha512-zhfypQm63CPYHi43O/3lTcEPVucY3h6CqONbzreMKZIEXtwgkB9HCm4wn441Z9/CpM94G6/NA3wcaRb0N2kPYQ==", "integrity": "sha512-rcbVI915IzeLFzayATSUQRZkcEkqUoUcvuGTMWcVgQwYibWq1rSvNBTGhCJvmAEGA8e9ygAJS3y9gZFQPjRxBA==",
"requires": { "requires": {
"async": "2.6.1", "async": "2.6.0",
"bson": "~1.1.0", "bson": "~1.0.4",
"kareem": "2.3.0", "hooks-fixed": "2.0.2",
"mongodb": "3.1.10", "kareem": "1.5.0",
"mongodb-core": "3.1.9", "lodash.get": "4.4.2",
"mongoose-legacy-pluralize": "1.0.2", "mongodb": "2.2.34",
"mpath": "0.5.1", "mpath": "0.3.0",
"mquery": "3.2.0", "mpromise": "0.5.5",
"mquery": "2.3.3",
"ms": "2.0.0", "ms": "2.0.0",
"muri": "1.3.0",
"regexp-clone": "0.0.1", "regexp-clone": "0.0.1",
"safe-buffer": "5.1.2",
"sliced": "1.0.1" "sliced": "1.0.1"
} }
}, },
"mongoose-legacy-pluralize": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
"integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"mpath": { "mpath": {
"version": "0.5.1", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.3.0.tgz",
"integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg==" "integrity": "sha1-elj3iem1/TyUUgY0FXlg8mvV70Q="
},
"mpromise": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.5.5.tgz",
"integrity": "sha1-9bJCWddjrMIlewoMjG2Gb9UXMuY="
}, },
"mquery": { "mquery": {
"version": "3.2.0", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz", "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.3.tgz",
"integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==", "integrity": "sha512-NC8L14kn+qxJbbJ1gbcEMDxF0sC3sv+1cbRReXXwVvowcwY1y9KoVZFq0ebwARibsadu8lx8nWGvm3V0Pf0ZWQ==",
"requires": { "requires": {
"bluebird": "3.5.1", "bluebird": "3.5.0",
"debug": "3.1.0", "debug": "2.6.9",
"regexp-clone": "0.0.1", "regexp-clone": "0.0.1",
"safe-buffer": "5.1.2", "sliced": "0.0.5"
"sliced": "1.0.1"
}, },
"dependencies": { "dependencies": {
"debug": { "sliced": {
"version": "3.1.0", "version": "0.0.5",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8="
"requires": {
"ms": "2.0.0"
}
} }
} }
}, },
@ -340,6 +360,11 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"muri": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz",
"integrity": "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg=="
},
"negotiator": { "negotiator": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
@ -368,6 +393,11 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
}, },
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
"proxy-addr": { "proxy-addr": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
@ -398,6 +428,20 @@
"unpipe": "1.0.0" "unpipe": "1.0.0"
} }
}, },
"readable-stream": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
"integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
"requires": {
"buffer-shims": "~1.0.0",
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "~1.0.0",
"process-nextick-args": "~1.0.6",
"string_decoder": "~1.0.0",
"util-deprecate": "~1.0.1"
}
},
"regexp-clone": { "regexp-clone": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
@ -427,15 +471,6 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"saslprep": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz",
"integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"semver": { "semver": {
"version": "5.6.0", "version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
@ -482,20 +517,19 @@
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
}, },
"sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"memory-pager": "^1.0.2"
}
},
"statuses": { "statuses": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"type-is": { "type-is": {
"version": "1.6.16", "version": "1.6.16",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
@ -510,6 +544,11 @@
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
}, },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge": { "utils-merge": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",

View File

@ -9,8 +9,9 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"body-parser": "^1.18.3",
"cors": "^2.8.5", "cors": "^2.8.5",
"express": "^4.16.4", "express": "^4.16.4",
"mongoose": "^5.4.1" "mongoose": "4.13.15"
} }
} }

17
statusSchema.js Normal file
View File

@ -0,0 +1,17 @@
const mongoose = require("mongoose");
const statusSchema = new mongoose.Schema(
{
status: [
{
value: String,
time: Date
}
],
device: {
type: mongoose.Schema.Types.ObjectId,
ref: "deviceSchema"
}
},
{ timestamps: true }
);
module.exports = mongoose.model("statusSchema", statusSchema);