Nodej包括模型

时间:2016-08-18 11:44:45

标签: node.js model

我有问题让我的server.js使用我的模型。

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

    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);

1 个答案:

答案 0 :(得分:2)

您忘了在最后导出模块。

var Crime = mongoose.model('Crime', CrimeSchema);    
module.exports = Crime;
相关问题