我有一个app.js节点应用程序。随着此文件开始增长,我想将代码的某些部分移到app.js文件中“需要”或“包含”的其他文件中。
我正在尝试类似的事情:
// Declare application
var app = require('express').createServer();
// Declare usefull stuff for DB purposes
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
// THE FOLLOWING REQUIRE DOES NOT WORK
require('./models/car.js');
在car.js中:
// Define Car model
CarSchema = new Schema({
brand : String,
type : String
});
mongoose.model('Car', CarSchema);
我得到了错误:
ReferenceError: Schema is not defined
我只是想加载car.js的内容(而不是将所有内容都放在同一个app.js文件中)在node.js中是否有一种特殊的方式来实现?
1
模式在该范围中不存在。您可以尝试通过某种导出函数将Schema传递到car.js中,从而可以引用它。或在car.js中要求猫鼬。
—
罗伯特
Node.js利用CommonJS,它将代码分成不同的模块。快速的经验法则是,Node应用程序中的代码范围是定义它的文件。因此,您需要在car.js中使用猫鼬,在car.js中,您需要导出应用程序的其余部分然后像您一样在主文件中要求它。
—
Matt Greer