私は更新してユーザーに表示するために自分のコードを試しています。基本的に私はそれがのために私の解像度に関係していると思う、私が何をする必要があるか行うことができるが、それを実行した後、私はエラーが発生し続ける:送信後にヘッダーを設定できない
C:\Users\tester01_2\myproject\node_modules\mongodb-core\lib\cursor.js:174 throw err; ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11) at ServerResponse.header ( C:\Users\tester01_2\myproject\node_modules\express\lib\response.js:725:10) at ServerResponse.send (C:\Users\tester01_2\myproject\node_modules\express\lib\response.js:170:12) at C:\Users\tester01_2\myproject\dbUpdate.js:13:14 at C:\Users\tester01_2\myproject\dbUpdate.js:28:5 at handleCallback (C:\Users\tester01_2\myproject\node_modules\mongodb- core\lib\cursor.js:171:5) at nextFunction (C:\Users\tester01_2\myproject\node_modules\mongodb- core\lib\cursor.js:682:5) at Cursor.next [as _next] (C:\Users\tester01_2\myproject\node_modules\mongodb- core\lib\cursor.js:692:3) at loop (C:\Users\tester01_2\myproject\node_modules\mongodb\lib\cursor.js:694:8) at _each (C:\Users\tester01_2\myproject\node_modules\mongodb\lib\cursor.js:741:16)
このエラーが出るこれは私のコード
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var url = 'mongodb://localhost:27017/myproject';
module.exports = {
postCollection : function(req, res){
var issueQty = req.body.issueQty;
var itemDescrip = req.body.itemDescrip;
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
updateRecord(db, req, function(doc) {
return res.send('Record Found. Now updating this document...' +
itemDescrip + ' Record Updated. This is the new record ' + doc)
res.end();
db.close();
});
});
}
}
var updateRecord = function(db, req, callback) {
var cursor = db.collection('documents').find({'Item Description':
req.body.itemDescrip, 'Issued QTY': req.body.issueQty})
cursor.each(function(err,doc){
assert.equal(err, null);
if(doc != err){
console.log('Successfully queried');
console.log(doc);
callback(JSON.stringify(doc));
} else{
throw err;
}
});
db.collection('documents').updateMany(
{ 'Item Description': req.body.itemDescrip},
{
$set: { 'Issued QTY': req.body.issueQty }
},function(err, results) {
console.log(results);
console.log('Done');
console.log(results);
});
};
です私が見たすべてのスレッドは、間違った位置にあることが判明しましたが、res.send
をそこに入れて、doc
を使用できるようにする必要があります。この問題を解決する方法はありますか?ありがとう。
、あなたのコードの私の変形例です。 @YiKai –
@OngKongTat答えを更新しました。あなたのupdateRecord関数を2回確認してください。 –
申し訳ありませんが、私はあなたがループを意味するものを実際には得られません。私はちょっと混乱しているので、どのようにdb.close()を置くべきかを知っていますか? –