CNode

新手请教一个mongoose的问题!

问答
Bbenny201发布于9 年前最后回复9 年前7 回复3340 浏览0 收藏

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

查看回复

回复 (7)

I
im-here#1·9 年前

debug一下最后这张图,看看你的代码究竟是走到then里了还是走到catch里了。 你说你卡了,估计多半是走到catch里,但是不满足if条件直接next(e)

B
benny201#2·9 年前
引用 im-heredebug一下最后这张图,看看你的代码究竟是走到`then里了还是走到catch里了。 你说你卡了,估计多半是走到catch里,但是不满足if条件直接next(e)`了

@imhered 谢谢哈,我debug了一下,then和catch都没有进去,是什么原因呢?是create的问题吗,我检查了一下好像也没有问题。

N
nnliang#3·9 年前
var User = mongoose.model('User', UserSchema);

Promise.promisifyAll(User);
Promise.promisifyAll(User.prototype);

module.exports = User;

I
im-here#4·9 年前
引用 benny201@imhered 谢谢哈,我debug了一下,then和catch都没有进去,是什么原因呢?是create的问题吗,我检查了一下好像也没有问题。

@benny201 mongoose自带的 promise已经被弃用了,替换一下promise

mongoose.Promise = global.Promise;

如果你不是用的ES6写法的话 这样

var Promise = require('bluebird');
mongoose.Promise = Promise;
N
nnliang#5·9 年前

@imhered mongoose 的promise 只会被警告,不至于卡住吧?

I
im-here#6·9 年前
引用 nnliang@imhered mongoose 的promise 只会被警告,不至于卡住吧?

@nnliang 仔细看看,不是警告,是一个error。把promise换掉再试试把

N
nnliang#7·9 年前

@imhered 我以前刚开始用的时候出现过这个warning,提示马上就不支持了,我换完promise就好使了~ 也有可能是我那会的warning已经变成error了~

参与回复
登录后即可参与回复。登录