2016-09-15 81 views
2

你能帮助我吗?我看不出这里有什么问题。一旦编译了模型'',编译一次就不能覆盖`User`模型

这里是代码片段从server.js:

var mongoose = require('mongoose'); 

var MongoClient = require('mongodb').MongoClient 
    , assert = require('assert'); 
var db = 'nodebook'; 
var url = '' 
mongoose.createConnection('mongodb://localhost/'+db); 

// The User 
    var User = mongoose.model('User', { 
    username: String, 
    password: String, 
    biography: String, 
    image: String, 
    }); 

这似乎每次 “noding” server.js。 Btw。我是node.js/mongoose中的新手。

来自终端的错误:

/Users/davidnoldner/node_modules/mongoose/lib/index.js:360 
     throw new mongoose.Error.OverwriteModelError(name); 
    ^
OverwriteModelError: Cannot overwrite `User` model once compiled. 
    at Mongoose.model (/Users/davidnoldner/node_modules/mongoose/lib/index.js:360:13) 
    at Server.<anonymous> (/Users/davidnoldner/Librament/server.js:46:21) 
    at emitTwo (events.js:87:13) 
    at Server.emit (events.js:172:7) 
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:533:12) 
    at HTTPParser.parserOnHeadersComplete (_http_common.js:103:23) 

也许有帮助 - mongod的控制台:

2016-09-15T08:32:07.973+0200 W NETWORK [HostnameCanonicalizationWorker] Failed to obtain name info for: [ (2620:9b::5dd:4570, "nodename nor servname provided, or not known"), (2620:9b::5dd:4570, "nodename nor servname provided, or not known"), (192.168.0.16, "nodename nor servname provided, or not known"), (5.221.69.112, "nodename nor servname provided, or not known"), (192.168.0.16, "nodename nor servname provided, or not known"), (5.221.69.112, "nodename nor servname provided, or not known") ] 

谢谢!

+0

更新: 我试图在这里找到解决方案:http://stackoverflow.com/questions/19051041/cannot-overwrite-model-once-compiled-mongoose?noredirect=1&lq=1但我没有”问题解决了答案,这就是为什么我在这里打开这个线程。 我的问题只基于一个名为server.js的文件,而我发现的其他类似问题则基于更多文件,即关系中的insert.js和app.js。 –

回答

1

初始化猫鼬模型时出错,没有遵循正确的语法和文档。请参阅this链接上的mongoose文档。

var mongoose = require('mongoose'); 

var MongoClient = require('mongodb').MongoClient 
    ,assert = require('assert'); 
var db = 'nodebook'; 
var url = '' 
mongoose.createConnection('mongodb://localhost:27017/'+db); 

const Schema = mongoose.Schema; 
// The User 
var User = mongoose.model('User', new Schema({ 
    username: String, 
    password: String, 
    biography: String, 
    image: String, 
})); 
+0

好吧,我改变了它,并尝试与下一个模型,但我仍然收到相同的错误。代码如下: const Schema = mongoose.Schema; //用户 VAR用户= mongoose.model( '用户',新的架构({ 用户名:字符串, 密码:字符串, 传记:字符串, 图像:字符串, })); VAR状态= mongoose.model( '状态',新的架构({ \t体:字符串, \t时间:号码, \t用户名:字符串, \t图像:字符串, \t评论:数组, \t喜欢:Array })); –

+0

默认情况下,MongoDb在端口'27017'上运行,指定端口号以及在尝试建立连接时。 –

+0

我改变了这条线,服务器将侦听'var port = 27017;'的端口,但没有任何变化。同样的问题。 –