在外部文件类中使用express.js函数

时间:2015-05-13 14:45:17

标签: node.js express

我正在尝试在对象中使用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?

2 个答案:

答案 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;