2016-08-18 80 views
0

我有问题,使我的server.js使用我的模型。Nodejs包括模型

我确实有其他机型相同的结构,例如像:

var Post = mongoose.model('Post'); 
var Comment = mongoose.model('Comment'); 

,但他们工作得很好..莫名其妙。

但是,如果,如果我尝试使用:

var Crime = mongoose.model('Crime'); 

我得到:

  throw new mongoose.Error.MissingSchemaError(name); 
    ^
MissingSchemaError: Schema hasn't been registered for model "Crime". 

如果我切换到:

var Crime = require('./models/Crime'); 

var Crime = require('./models/Crime.js'); 

我得到的回应:

Cannot find module './models/Crime' 

犯罪型号代码:

var mongoose = require('mongoose'); 



var CrimeSchema = new mongoose.Schema({ 
    username: {type: String, lowercase: true, unique: true}, 
    time: String, 
    salt: String 
}); 

CrimeSchema.methods.performCrime = function(pass) { 

    /*var deferred = $q.defer(); 


    deferred.notify('loading....'); 
    deferred.reject('Greeting is not allowed.'); 


    return deferred.promise; 
    */ 

    return 22; 
}; 


mongoose.model('Crime', CrimeSchema); 

编辑

例如工作模式:

var Post = mongoose.model('Post'); 

和post.js模型

var mongoose = require('mongoose'); 

var PostSchema = new mongoose.Schema({ 
    title: String, 
    link: String, 
    upvotes: {type: Number, default: 0}, 
    comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }] 
}); 

PostSchema.methods.upvote = function(cb) { 
    this.upvotes += 1; 
    this.save(cb); 
}; 

PostSchema.methods.downvote = function (cb) { 
    this.upvotes -= 1; 
    this.save(cb); 
}; 

mongoose.model('Post', PostSchema); 

回答

2

您忘了在最后输出模块。

var Crime = mongoose.model('Crime', CrimeSchema);  
module.exports = Crime; 
+0

文件结束或其中o – maria

+0

文件结束是。替换此代码'mongoose.model('Crime',CrimeSchema);'我的回答 – John

+0

我替换它,并且它得到了同样的错误。 – maria