Ich habe eine app.js-Knotenanwendung. Da diese Datei zu wachsen beginnt, möchte ich einen Teil des Codes in einige andere Dateien verschieben, die ich in der Datei app.js "benötigen" oder "einschließen" würde.
Ich versuche Dinge wie:
// 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');
in car.js:
// Define Car model
CarSchema = new Schema({
brand : String,
type : String
});
mongoose.model('Car', CarSchema);
Ich habe den Fehler bekommen:
ReferenceError: Schema is not defined
Ich möchte nur den Inhalt von car.js laden (anstatt alles in derselben app.js-Datei zu haben). Gibt es eine besondere Möglichkeit, dies in node.js zu tun?
javascript
node.js
Luc
quelle
quelle
Antworten:
Wenn Sie einen Schwerpunkt auf das legen, was alle anderen
var foo
auf oberster Ebene gesagt haben, wird keine globale Variable erstellt. Wenn Sie eine globale Variable möchten, schreiben Sieglobal.foo
. aber wir alle wissen, dass Globale böse sind.Wenn Sie jemand sind, der solche Globals in einem node.js-Projekt verwendet, an dem ich beteiligt war, würde ich sie umgestalten, da es dafür nur so wenige Anwendungsfälle gibt (es gibt einige Ausnahmen, aber dies ist keine).
in car.js
quelle
return {models: {car: CarModel, dealer: CarDealer}, carStuff: carStuff}
Die richtige Antwort ist normalerweise erforderlich, aber in einigen Fällen ist dies nicht möglich.
Der folgende Code reicht aus, aber verwenden Sie ihn mit Vorsicht:
quelle
#include
?Kurze Antwort:
quelle
Cannot find module lib.js
.require('./lib.js').your_function()
du kannst Geben
Oben in Ihrer car.js-Datei, damit es funktioniert, oder Sie können das tun, was Raynos gesagt hat.
quelle
Wenn Sie nur eine Bibliothek über die Befehlszeile testen möchten, haben Sie folgende Möglichkeiten:
quelle
Dieser Ansatz funktioniert für mich in Node.js. Gibt es ein Problem mit diesem ?
Datei 'include.js':
Datei 'main.js':
quelle