假设我有一个叫app。js的文件。很简单:
var express = require('express');
var app = express.createServer();
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.get('/', function(req, res){
res.render('index', {locals: {
title: 'NowJS + Express Example'
}});
});
app.listen(8080);
如果我在“tools.js”中有一个函数。我如何将它们导入到apps.js中使用?
还是……我应该把“工具”变成一个模块,然后需要它吗?<<似乎很难,我宁愿做tools.js文件的基本导入。
假设我们想调用函数ping()和add(30,20),这是在lib.js文件
从main.js
main.js
lib = require("./lib.js")
output = lib.ping();
console.log(output);
//Passing Parameters
console.log("Sum of A and B = " + lib.add(20,30))
lib.js
this.ping=function ()
{
return "Ping Success"
}
//Functions with parameters
this.add=function(a,b)
{
return a+b
}
您不需要新的函数或新的模块。
如果不想使用命名空间,只需执行正在调用的模块。
在tools.js
module.exports = function() {
this.sum = function(a,b) { return a+b };
this.multiply = function(a,b) { return a*b };
//etc
}
在app.js
或任何其他。js,如myController.js:
而不是
Var tools = require('tools.js'),这迫使我们使用命名空间并调用工具,如tools.sum(1,2);
我们可以简单地调用
require('tools.js')();
然后
sum(1,2);
在我的情况下,我有一个文件与控制器ctrl .js
module.exports = function() {
this.Categories = require('categories.js');
}
和我可以使用类别在每个上下文后的公共类require('ctrls.js')()
你可以只需要require('./filename')。
Eg.
// file: index.js
var express = require('express');
var app = express();
var child = require('./child');
app.use('/child', child);
app.get('/', function (req, res) {
res.send('parent');
});
app.listen(process.env.PORT, function () {
console.log('Example app listening on port '+process.env.PORT+'!');
});
// file: child.js
var express = require('express'),
child = express.Router();
console.log('child');
child.get('/child', function(req, res){
res.send('Child2');
});
child.get('/', function(req, res){
res.send('Child');
});
module.exports = child;
请注意:
你不能监听子文件的PORT,只有父express模块有PORT监听器
子正在使用“路由器”,而不是父Express moudle。