Node.js Heroku服务器上的NodeJS应用程序中缺少SchemaError
我的应用程序已成功在我的本地服务器上运行 当我将其推送到heroku服务器时,有时会因以下错误而崩溃:Node.js Heroku服务器上的NodeJS应用程序中缺少SchemaError,node.js,heroku,mongoose,Node.js,Heroku,Mongoose,我的应用程序已成功在我的本地服务器上运行 当我将其推送到heroku服务器时,有时会因以下错误而崩溃: 2012-12-28T10:00:53+00:00 heroku[web.1]: Starting process with command `node server.js` 2012-12-28T10:00:54+00:00 app[web.1]: 2012-12-28T10:00:54+00:00 app[web.1]: /app/node_modules/mongoose/lib/in
2012-12-28T10:00:53+00:00 heroku[web.1]: Starting process with command `node server.js`
2012-12-28T10:00:54+00:00 app[web.1]:
2012-12-28T10:00:54+00:00 app[web.1]: /app/node_modules/mongoose/lib/index.js:261
2012-12-28T10:00:54+00:00 app[web.1]: throw new mongoose.Error.MissingSchemaError(name);
2012-12-28T10:00:54+00:00 app[web.1]: ^
2012-12-28T10:00:54+00:00 app[web.1]: MissingSchemaError: Schema hasn't been registered for model "Activity".
2012-12-28T10:00:54+00:00 app[web.1]: Use mongoose.model(name, schema)
2012-12-28T10:00:54+00:00 app[web.1]: at Mongoose.model (/app/node_modules/mongoose/lib/index.js:261:13)
2012-12-28T10:00:54+00:00 app[web.1]: at Object.<anonymous> (/app/app/models/user.js:8:25)
2012-12-28T10:00:54+00:00 app[web.1]: at Module._compile (module.js:449:26)
2012-12-28T10:00:54+00:00 app[web.1]: at Object.Module._extensions..js (module.js:467:10)
2012-12-28T10:00:54+00:00 app[web.1]: at Module.load (module.js:356:32)
2012-12-28T10:00:54+00:00 app[web.1]: at Function.Module._load (module.js:312:12)
2012-12-28T10:00:54+00:00 app[web.1]: at Module.require (module.js:362:17)
2012-12-28T10:00:54+00:00 app[web.1]: at require (module.js:378:17)
2012-12-28T10:00:54+00:00 app[web.1]: at /app/server.js:23:3
2012-12-28T10:00:54+00:00 app[web.1]: at Array.forEach (native)
2012-12-28T10:00:55+00:00 heroku[web.1]: Process exited with status 1
2012-12-28T10:00:55+00:00 heroku[web.1]: State changed from starting to crashed
我的activity.js是:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, moment = require('moment')
var schemaOptions = {
toJSON: {
virtuals: true
}
};
var ActivitySchema = new Schema({
venue: {type : Schema.ObjectId, ref : 'Venue'}
, user: {type : Schema.ObjectId, ref : 'User'}
, createdAt: {type : Date, default : Date.now}
, rate: Number
, message : String
, source : String
}, schemaOptions)
mongoose.model('Activity', ActivitySchema)
ActivitySchema.index({ "user": 1, "venue" : 1 }, { unique: true })
var modifiedAt = require('../../config/plugins.js');
ActivitySchema.plugin(modifiedAt, { index: false });
ActivitySchema.virtual('summary').get(function () {
moment.lang('en');
return moment(this.createdAt).fromNow() + ' via ' + this.source;
});
奇怪的是,有时应用程序会崩溃,但有时会正常工作。我能做些什么来解决它呢?我在代码中要做的是导出一个以mongoose为参数的函数来解决mongoose中的'MissingSchemaError' 像这样的
module.exports = function (mongoose) {
var GeoSchema = new mongoose.Schema({
loc:{ type:[Number], index:'2d'}
});
return GeoSchema;
};
我遇到了同样的问题。我修改了我的用户模块,这样它就可以创建一个与用户模块对应的配置文件文档。让该用户模块加载概要文件模式将在我将其加载到文件顶部时引发相同的错误。当我把它放在代码的范围内时,我正在使用它修复了这个问题
var Profile = mongoose.model('Profile');
我不得不将上面的代码移到代码中(我认为这是一个时间问题,在mongo被开发出来之前,我试图使用它)
var Profile = mongoose.model('Profile');