nodejs使用mongoose连接数据库,使用post提交表单在后台,后台处理后调用res.redirect()跳转界面无效?

发布于 2022-09-04 19:38:42 字数 1640 浏览 7 评论 0

nodejs使用mongoose连接数据库,使用post提交表单在后台,后台处理后调用res.redirect()跳转界面无效?这是为什么呢,

情况:我想要在项目中连接多个mongodb数据库,所以就想使用mongoose.createConnection方法来连接数据库,就遇到了以上的问题。

原来的情况:我是使用mongoose.connect('mongodb://localhost/myapp');来连接数据库的,具体如下:(这里是登陆的方法后台代码)

var mongoose = require('mongoose');
var User = mongoose.model('User');
mongoose.connect('mongodb://localhost/myapp');

exports.login = function(req, res){
    User.findOne({ username: req.body.username }).exec(function(err, user) {
        if (!user){
            err = 'User Not Found.';
        } else if (user.password.toString() ===
               hashPW(req.body.password.toString())) {
            console.log('user:' + user)
            console.log('id:' + user.id)
            req.session.user = user.id;
            res.redirect('/');
        }
    });
}

上面的情况是正常的,可以查询到数据库密码进行匹配,并成功跳转。

现在的情况:使用的是mongoose.createConnection('mongodb://localhost/myapp');连接数据库,就出现问题了,具体代码如下:

var mongoose = require('mongoose');
var pdb = mongoose.createConnection('mongodb://localhost/myapp');
var User = pdb.model('User');
User.findOne({ username: req.body.username }).exec(function(err, user) {
        if (!user){
            err = 'User Not Found.';
        } else if (user.password.toString() ===
               hashPW(req.body.password.toString())) {
            console.log('user:' + user)
            console.log('id:' + user.id)
            req.session.user = user.id;
            res.redirect('/');
            pdb.close();
        }
    });

上面就是我要问的情况,在这里我也可以查到具体的用户,用户密码验证也是可以的,但是为什么res.redirect('/');就是无反应呢,不跳转。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南城追梦 2022-09-11 19:38:42

错误代码中req,res哪来的

蔚蓝源自深海 2022-09-11 19:38:42

问题已经找到,是因为使用mongoose.createConnection连接数据库只能在当前的js中操作数据库,这里我只是查找了users表中数据,在路由中我还涉及到了其他表的数据查询操作,那里没有写mongoose.createConnection连接操作库操作。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文