gpt4 book ai didi

node.js - Heroku 服务器上 NodeJS 应用程序中 MissingSchemaError

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:53 25 4
gpt4 key购买 nike

我的应用程序在本地成功运行。

当我将其推送到 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/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

在我的 server.js 中,我使用以下代码加载模型:

var models_path = __dirname + '/app/models'
fs.readdirSync(models_path).forEach(function (file) {
require(models_path+'/'+file)
})

我的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 中的“MissingSchemaError”问题,我必须在代码中导出一个以 mongoose 作为参数的函数。

类似这样的事情。

module.exports = function (mongoose) {

var GeoSchema = new mongoose.Schema({
loc:{ type:[Number], index:'2d'}
});

return GeoSchema;
};

关于node.js - Heroku 服务器上 NodeJS 应用程序中 MissingSchemaError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067890/

25 4 0
文章推荐: html - 如何实现我的 Bootstrap 导航设计?
文章推荐: c - ANSI C - 多函数指针赋值
文章推荐: python - 将默认参数传递给嵌套函数python
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com