sensor.reading == null文を置き換えます。以前のタイムスタンプ と新しいタイムスタンプをチェックして、すべてのセンサーがデータをプッシュしたかどうかを確認するステートメントを使用します。 タイムスタンプをチェックしてセンサーがデータをデータベースにプッシュしていないかどうかをチェックしたいと思います。 しかし、非同期であるため、JavaScriptでこれを行う方法がわかりません。私はまた、タイムスタンプを持っているDBのセンサーテーブルを持っています。私はDBMSとしてmongodbを使用しています。これはJavaScriptで書かれています。タイムスタンプmongodbを使用してデータが追加されていることを確認してください
http.get('http://localhost:3000/stream', function (res) {
var body = '';
//Start of request
res.on('data', function (chunk) {
body += chunk;
});
var query = sensorManager.find({});
query.exec(function (err, sensors) {
if (err) return handleError(err);
check = sensors;
});
//End of request
res.on('end', function() {
var data = JSON.parse(body);
check.forEach(function (status) {
data.forEach(function (sensor) {
if (sensor.sensor_id == status.sensor_id && sensor.sensor_type == status.sensor_type) {
if (sensor.reading == null) {
var options = {
uri: 'http://localhost/api/nodemanager/' + status._id,
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
json: {"interval": status.interval + 1}
};
request(options, function (error, response, body) {
});
if (status.interval == 3 && status.status == "active") {
var options = {
uri: 'http://localhost/api/nodemanager/' + status._id,
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
json: {"status": "intermittent failures"}
};
request(options, function (error, response, body) {
});
}
if (status.interval == 30 && status.status == "intermittent failures") {
var options = {
uri: 'http://localhost/api/nodemanager/' + status._id,
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
json: {"status": "inactive"}
};
request(options, function (error, response, body) {
});
}
}
}
});
});
});
私は新しいタイムスタンプに
を取得するために、もう一度、クエリを実行したがため、タイムスタンプは常に同じであるプル後のセンサー
の古いタイムスタンプを取得するクエリを実行しますinsertメソッドが非同期であるため、挿入が完了する前に再チェックが行われます。挿入メソッドの後に再チェックメソッドを呼び出す場合でも。
なぜあなたはマングースを使用しませんか?ドキュメントが正しく挿入されている場合はドキュメントを返し、それ以外の場合はエラーを返します。 '' ModelSave((error、document)=> {if(error ||!document)console.log( "何か間違っていました")}) ' –
"は "api?どのようなAPIですか? –
もちろんですが、なぜこのAPIではMongooseを使用していませんか?データを送信し、Mongooseを使用して挿入し、成功した場合は文書を返信し、ジョブを完了しました –