新手请教一个mongoose的问题!
发布于 7 年前 作者 benny201 2735 次浏览 来自 问答

大家好。第一次用mongoose遇到了一些问题。 今天跟着论坛里的一个node入门做一个博客,里面用的是mongolass,我想把它改成mongoose的,我是这样做的: 首先创建一个schema, 然后返回一个mongoose model: 11.png 接着在另一个模块中返回一个model.create()的promise: 12.png 最后呢在signup的router里处理了这个promise: 13.png 因为这个是一个注册的页面,正常来说注册成功后会跳转到post,但是我填写完表单后,就卡到最后一张图的这段处理promise的代码里了,不知道是不是数据库操作不当,还是promise这边有问题,先谢过大伙了。

7 回复

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了~

回到顶部