node.js - 来自 mongoose 回调的 Express js res.redirect() 不起作用

标签 node.js express mongoose

我在这里想做的是,

/expense/new 页面向 /expense/newPost 提交 POST 请求

在 Expressjs 上,这样处理

app.post('/expense/newPost', function(req, res) { ...

继续,使用mongoose我将集合验证为

tmpExp = new Expense(req.body);

tmpExp.validate(function(err) {
  if(err || !isValidForm) {
    req.session.form.errField =  _.extend(req.session.form.errField, (err.errors || err ));
    req.session.rePop = req.body;
    res.redirect('/expense/new');
  } else {
    console.log('now saving') // successfully logs here.
    tmpExp.save(expPost, function(err2, savedDoc) {
      if(err2) {
        req.session.flash = { 
            global: true
          , css: "error"
          , message: "Internal Server Error"
        }
        res.redirect('/expense/new');
      } else {
        res.redirect('/expense/new?success=' + savedDoc.bill_id);
      }
    });
  }
});

为了清晰起见,我删除了一些验证代码。

现在的问题是,浏览器提交POST请求后,数据成功保存在mongodb中,但浏览器没有重定向,只是等待服务器的响应

最佳答案

您的保存回调未正确传入。

tmpExp.save(expPost, function(err2, savedDoc) {

应该是:

tmpExp.save(function(err2, savedDoc) {

关于node.js - 来自 mongoose 回调的 Express js res.redirect() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13116242/

相关文章:

javascript - 覆盖模型错误: Cannot overwrite `teams` model once compiled

javascript - Node.js Mongoose "object.newProperty"无法向对象添加新属性

node.js - 运行 node.js git hook 时出现 fatal error

jquery - 来自服务器的数组导致ajax成功回调函数中出现奇怪的附加行为?

node.js - 未处理的PromiseRejection警告: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line

node.js - 如何将 facebook 爬虫机器人重定向到另一个网页?

node.js - 如何在 Mongoose 中查询嵌套数组

javascript - 如何在 ES6/ES2015 中编写 Mongoose 模型

javascript - 如何按排序键顺序获取对象中的最后一项

MongoDB:如何查找忽略大小写敏感、重音符号和百分比类似逻辑的文档 (%)