大家好。第一次用mongoose遇到了一些问题。 今天跟着论坛里的一个node入门做一个博客,里面用的是mongolass,我想把它改成mongoose的,我是这样做的: 首先创建一个schema, 然后返回一个mongoose model: 接着在另一个模块中返回一个model.create()的promise: 最后呢在signup的router里处理了这个promise: 因为这个是一个注册的页面,正常来说注册成功后会跳转到post,但是我填写完表单后,就卡到最后一张图的这段处理promise的代码里了,不知道是不是数据库操作不当,还是promise这边有问题,先谢过大伙了。
debug一下最后这张图,看看你的代码究竟是走到then
里了还是走到catch
里了。
你说你卡了,估计多半是走到catch
里,但是不满足if
条件直接next(e)
了
@imhered 谢谢哈,我debug了一下,then和catch都没有进去,是什么原因呢?是create的问题吗,我检查了一下好像也没有问题。
var User = mongoose.model('User', UserSchema);
Promise.promisifyAll(User);
Promise.promisifyAll(User.prototype);
module.exports = User;
@benny201 mongoose自带的 promise已经被弃用了,替换一下promise
mongoose.Promise = global.Promise;
如果你不是用的ES6写法的话 这样
var Promise = require('bluebird');
mongoose.Promise = Promise;
@imhered mongoose 的promise 只会被警告,不至于卡住吧?
@nnliang 仔细看看,不是警告,是一个error。把promise换掉再试试把
@imhered 我以前刚开始用的时候出现过这个warning,提示马上就不支持了,我换完promise就好使了~ 也有可能是我那会的warning已经变成error了~