首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表单提交后,如果不重新加载页面,则不会显示新数据

表单提交后,如果不重新加载页面,则不会显示新数据
EN

Stack Overflow用户
提问于 2014-01-30 01:39:39
回答 2查看 436关注 0票数 0

在我的ExpressJS应用程序中,我有两条通往同一位置的路线,一条是“get”,另一条是“post”。

在“get”页面上,它通过MongooseJS转储我的MongoDB集合中的所有文档,然后是一个向集合中添加新记录的表单。

在“post”页面上,它接收表单数据并将其添加到集合中,然后显示您通过“get”看到的相同页面。

它可以工作,但在表单提交后,新记录不会出现,除非我重新加载页面。我将呈现页面的代码放在最底部,在将数据添加到集合的部分下面,所以在我看来,这应该是可行的,但它不起作用。

代码语言:javascript
运行
复制
exports.index = function(req, res){
  Server.find({},
    function(err, docs) {
      if (!err){ 
          res.render('servers', { title: 'verify', results: docs});
      }
      else { console.log(err);}
    }
  );
}

exports.add = function(req, res){
  newServer = new Server({
    name: req.body.name,
    os: req.body.os,
    osVersion: req.body.osVersion
  });
  newServer.save(function (err) {
    if (err) {
      console.log(err);
  }
  });
  Server.find({},
    function(err, docs) {
      if (!err){ 
          res.render('servers', { title: 'verify', results: docs});
      }
      else { console.log(err);}
    }
  );
}
EN

Stack Overflow用户

发布于 2014-02-05 04:06:31

是的,这些数据库查询是异步的,所以回调可以解决这个问题。但是,您应该考虑使用promises。Mongoose默认返回promises,你也可以选择导入你的库。在处理嵌套回调和查询以及错误处理时,它们将派上用场。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21438517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档