首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在node.js应用程序中包含外部.js文件

在node.js应用程序中包含外部.js文件
EN

Stack Overflow用户
提问于 2011-04-12 02:12:18
回答 4查看 131.5K关注 0票数 97

我有一个app.js节点应用程序。随着这个文件开始增长,我想将部分代码移动到app.js文件中“需要”或“包含”的一些其他文件中。

我正在尝试这样的事情:

代码语言:javascript
复制
// 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中:

代码语言:javascript
复制
// Define Car model
CarSchema = new Schema({
  brand        : String,
  type : String
});
mongoose.model('Car', CarSchema);

我得到了错误:

代码语言:javascript
复制
ReferenceError: Schema is not defined

我只是希望加载car.js的内容(而不是将所有内容都放在同一个app.js文件中),在node.js中有什么特殊的方法可以做到这一点吗?

EN

回答 4

Stack Overflow用户

发布于 2012-03-31 00:23:02

正确的答案通常是使用require,但在少数情况下这是不可能的。

下面的代码可以做到这一点,但要小心使用:

代码语言:javascript
复制
var fs = require('fs');
var vm = require('vm');
var includeInThisContext = function(path) {
    var code = fs.readFileSync(path);
    vm.runInThisContext(code, path);
}.bind(this);
includeInThisContext(__dirname+"/models/car.js");
票数 57
EN

Stack Overflow用户

发布于 2014-04-09 00:28:22

简短的回答:

代码语言:javascript
复制
// lib.js
module.exports.your_function = function () {
  // Something...
};

// app.js
require('./lib.js').your_function();
票数 18
EN

Stack Overflow用户

发布于 2011-04-12 02:46:59

你可以把

代码语言:javascript
复制
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

在你的car.js文件的顶部,让它工作,或者你可以做雷诺斯说要做的事情。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5625569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档