【发布时间】:2014-02-11 19:54:26
【问题描述】:
我正在构建我的第一个 node/express/mongoose 应用程序。我被这个错误困住了:
500 ReferenceError: ServerModel 未定义
下面是文件“routes/input.js”。我不知道我做错了什么,模型在我尝试使用它之前就已经明确定义了。
exports.verify = function(req, res){
var mongoose = require('mongoose');
var serverSchema = new mongoose.Schema({
name: { type: String, unique: true },
os: String,
osVersion: String,
createdOn: {type: Date, default: Date.now },
modifiedOn: Date,
cores: Number,
memoryGB: Number,
licenses: [licenseSchema]
});
var licenseSchema = new mongoose.Schema({
name: String,
createdOn: {type: Date, default: Date.now },
modifiedOn: Date
});
mongoose.model( 'ServerModel', serverSchema );
var inputVar = new ServerModel({
name: req.param.name,
os: req.param.OS,
osVersion: req.param.OSv
});
res.render('input', { title: 'verify' });
};
【问题讨论】:
-
我现在可以使用该模型,但我仍然有问题。 OverwriteModelError: 编译后无法覆盖
Server模型。我想我明白为什么,因为每次调用路由时,它都会尝试再次定义模型。我需要在其他地方定义模型......但我不确定在哪里。 -
我认为这个问题令人厌恶,我想删除,因为我认为我的问题没有得到回答,而且它只是占用了 Internet 上的空间。
-
那就删掉吧。我在这个答案上花了很多时间(甚至给你做了一个吓人的 gif),所以我想如果你要说这不是一个实际的答案,那么无论如何;也许你应该问更好的问题。祝你好运。
-
我不久前尝试删除它,但它不会让我这样做。当我试图改写这个问题并且它被修改时,我很生气。你没有回答我的问题。我很感激您花费了多少时间来回答它,但您所做的是使用您创建的东西提出解决方案。这很好,但这不是我要求的。
-
只要弹出索引文件,你就会看到它有多薄。您正在询问将 mongoose 资源放在哪里,而 simpledb 所做的就是这样做,为您提供了一个很好的模式来遵循。说真的,偷看the module code。