Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在MongoDB findOne和save(异步)之后呈现页面?_Node.js_Mongodb_Asynchronous - Fatal编程技术网

Node.js 如何在MongoDB findOne和save(异步)之后呈现页面?

Node.js 如何在MongoDB findOne和save(异步)之后呈现页面?,node.js,mongodb,asynchronous,Node.js,Mongodb,Asynchronous,我的问题涉及以下代码: DB.findOne({ '_id' : req.user._id }, function(err, user) { user.count+=1; user.save(function(err) { if (err) req.flash('error', err.message); done(err, user); req.flash('success', 'count incremented'); res.render('page

我的问题涉及以下代码:

DB.findOne({ '_id' : req.user._id }, function(err, user) {
  user.count+=1;
  user.save(function(err) {
    if (err) req.flash('error', err.message);
    done(err, user);
    req.flash('success', 'count incremented');
    res.render('page1', {
      user : req.user
      success: req.flash('success'),
    });
  });
});
我在Mongo查询和保存完成后呈现页面时遇到问题


有一个优雅的解决方案吗?

您只需在回调中添加
rend
函数即可

DB.findOne({ '_id' : req.user._id }, function(err, user) {
  user.count+=1;
  user.save(function(err) {
    if (err) req.flash('error', err.message);
    done(err, user);
req.flash('success', 'count incremented');
res.render('page1', {
  user : user
  success: req.flash('success'),
});
  });
});

看看你为用户名选择了什么,但你无法找出你在这里做错了什么。真正地也。坏模式。更好:
DB.findByIdAndUpdate(req.user.\u id,{“$inc”:{“count”:1},{“new”:true},函数(err,user){//使用修改过的用户})
新的mongoose版本使用承诺,我建议使用它。可以帮你避免回电话谢谢你的建议。我已经试过了,但我得到了
错误:当我这样做时,无法设置发送后的标题。
。我已经试过了,同样的错误,但这次,页面根本不呈现。