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
동일한 app.js 파일에 모든 것을 포함하는 대신 car.js의 내용을로드하려고합니다. node.js에서이 작업을 수행하는 특별한 방법이 있습니까?
1
해당 범위에는 스키마가 없습니다. 일종의 내 보낸 함수를 통해 스키마를 car.js에 전달해 볼 수 있습니다. 그런 식으로 참조 할 수 있습니다. car.js 내에서 몽구스가 필요합니다.
—
Robert
Node.js는 코드를 여러 모듈로 나누는 CommonJS를 사용합니다. 간단한 경험 법칙, Node 앱의 코드 범위는 정의 된 파일입니다. 따라서 car.js에서 mongoose가 필요하고 car.js에서는 나머지 앱을 내 보내야합니다. 그런 다음 필요한 것처럼 주 파일에서 필요합니다.
—
Matt Greer 2011