node 新人的烦恼.求大神帮忙.关于mongoose
发布于 8 年前 作者 LukerSpringtree 5113 次浏览 来自 问答

刚刚学node 没有多久, 看了些 关于 node, epxress, mongodb,mongoose 也跟着 精华帖 《一起学node.js》 一起学习了 整个N-blog 项目 在那个 项目中 作者用的 是 自己写了 mongolass .但是呢,我还是想先学一下 mongoose 所以自己从头开始了一个小项目, 才3天,就出现问题解决不下去了 请大虾 帮忙!

https://github.com/LukerSpringtree/demoProject.git

supervisor ./bin/www 之后会报错,

@mongoose\lib\index.js:362 throw new mongoose.Error.MissingSchemaError(name); ^ MissingSchemaError: Schema hasn’t been registered for model “User”.

可我又定义 Schema 不知道啥问题. 请大神帮忙解决下.

心塞中.

10 回复

不太懂mongoose,慕课网有个scot老师这方面很牛X,你要不到他的课程页面问问他

@Ligory641785852 行 谢谢
我估计 是项目中,我文件 各种 引入 出现的错误.

心塞了半天了.

可能是定义的变量重名了,是不是定义了两个 User model

@coderfe 好像是的 至少 不报错.

代码我看了下,没看到有重名的User model… 而且报的错是缺少没有注册model ‘User’的Schema。 我没用过太多mongodb和mongoose,并不是大神,对于你这 var User = mongoose.model(‘User’);来获取model的方式没用过,想问问你是咋解决的问题。

@Sily-P 我把 你说的那段代码 注释掉了 就不报错 了. 但是 数据库好像还是不能用 无法再前段网页上 网数据库存东西 哈哈 我一直做前端的 刚刚学 Node和 MongoDb
下班回家小孩生病了.我才 刚刚看到你的回复, 问题没解决. 还在继续 嘿嘿

var User = mongoose.model(‘User’)是报错的点。我加了一些输出语句: 1.PNG

2.PNG

启动后的输出: 3.PNG

从输出来看我想的是:因为var User = mongoose.model(‘User’)执行时UserSchema和User的model还并没有创建和注册, 所以才会报出MissingSchemaError: Schema hasn’t been registered for model “User”. 你可以在signin.server.model.js中将User也export出去( module.exports = User; ),然后在signin.server.controller.js中require就好。 app.post(’/register’, function (req, res, next) { console.log(req.body); signinController.createUser(req.body); }); 这里createUser调用参数不对,我就试了一下注册,可以入库,其他你加油~~

var User = mongoose.model(‘User’,UserSchema);不是应该这么写么?

回到顶部