我正在尝试在对象中使用express.js的功能,但我不知道如何实现这一点:
我的 app.js
console.log('script.js file loaded ...');
module.exports =
{
test: function(message)
{
console.log('|-----> test('+ message +')');
}
};
我的 script.js
console.log('script.js file loaded ...');
module.exports =
{
test: function(message)
{
app.post('/', function (req, res) {
res.send('POST request to homepage');
});
console.log('|-----> test('+ message +')');
}
};
我的想法是能够在script.js中名为test的函数中使用app( express())中的函数,例如:
{{1}}
我怎么能在这个函数里面使用post?
答案 0 :(得分:1)
一种常见的方法是通过使module.exports
成为函数并传递初始化模块所需的任何内容来限定所需的实例。
app.js
var app = express();
var myFunc = require('./script')(app);
的script.js
module.exports = function(app) {
return {
test: function(message) {
app.post('/', function (req, res) {
res.send('POST request to homepage');
});
console.log('|-----> test('+ message +')');
}
}
}
答案 1 :(得分:0)
在您的app.js中,您可以将其他快速对象注册为中间件,因此在您的script.js中,您可以导出快速对象并在app.js中使用它来注册在另一个文件中指定的路由。
app.js
var express = require('express');
var app = express();
var scriptRoutes = require('./script.js');
app.use(scriptRoutes);
的script.js
var express = require('express');
var app = express();
app.post('/', function(req, res, next){
res.status(200).send("POST request made to homepage");
};
module.exports = app;