私はnode.js、エクスプレス、シリアルポートを使用して作成された小さなWebサーバーを持っており、USB経由でMacに接続された温度センサーを常にリッスンします。コードは次のとおりです。
var serialport = require("serialport"), // include the serialport library
SerialPort = serialport.SerialPort, // make a local instance of serial
app = require('express')(), // start Express framework
server = require('http').createServer(app), // start an HTTP server
io = require('socket.io').listen(server); // filter the server using socket.io
var mongo = require('mongodb');
var Server = mongo.Server,
Db = mongo.Db,
BSON = mongo.BSONPure;
var server = new Server('localhost', 27017, {auto_reconnect: true});
db = new Db('sensordatabase', server);
db.open(function(err, db) {
if(!err) {
console.log("Connected to 'sensordatabase' database");
db.collection('tempsensor', {safe:true}, function(err, collection) {
if (err) {
console.log("The 'values' collection doesn't exist. Creating it with sample data...");
}
});
}
});
var serialData = {}; // object to hold what goes out to the client
server.listen(8080); // listen for incoming requests on the server
console.log("Listening for new clients on port 8080");
// open the serial port. Change the name to the name of your port, just like in Processing and Arduino:
var myPort = new SerialPort("/dev/cu.usbmodem5d11", {
// look for return and newline at the end of each data packet:
parser: serialport.parsers.readline("\r\n")
});
// respond to web GET requests with the index.html page:
app.get('/', function (request, response) {
myPort.on('data', function (data) {
// set the value property of scores to the serial string:
serialData.value = data;
response.send(data);
// for debugging, you should see this in Terminal:
console.log(data);
});
});
上記のコードからわかるように、私のセンサー値は「データ」に保存されています。
次に、このデータを次の形式のtempsensorコレクションに保存します。
{
"Physicalentity": "Temperature",
"Unit": "Celsius",
"value": "",
"time": "",
"date": ""
},
私の質問は:
1:node.jsのmongodbドライバーを使用して、値オブジェクトに「データ」を保存するにはどうすればよいですか?2:データが自動的に追加される時間を追加するにはどうすればよいですか?
日付用の関数があることは知っていnew Date()
ますが、時間用の同様の関数はありますか?
助けていただければ幸いです。
よろしくお願いします。