nodejs使用mongoose连接数据库,使用post提交表单在后台,后台处理后调用res.redirect()跳转界面无效?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
错误代码中req,res哪来的
问题已经找到,是因为使用mongoose.createConnection连接数据库只能在当前的js中操作数据库,这里我只是查找了users表中数据,在路由中我还涉及到了其他表的数据查询操作,那里没有写mongoose.createConnection连接操作库操作。