4

我正在编写一堆 Web 服务,它们都有一些共同的模式。例如,它们都有相同的需求

var x = require(...);
var y = require(...);

做类似的认证

var auth = express.basicAuth(...);
server.use(auth); 

并有类似的错误信息。

server.error(function(err, req, res, next){
    ...
});

是否有某种方法可以将上述内容写在一个共同的地方,以便如果有任何更改,我可以进行一次更改而不是五六次?

4

1 回答 1

2

绝对地。您可以创建一个模块,该模块将返回一个基本 http 服务器,该服务器实现所有服务通用的设置/方法。从那里您可以只需要该模块,并添加其他服务方法来完成它。

该模块看起来像:

var express = require('express');
var app = express.createServer();

//  Configure

//  Common Functionality
app.error(function(err, req, res, next){
    ...
});

exports.app = app;

然后你可以像这样使用这个模块:

var service = require('./service-base').app;

service.get('/users', function(req, res) {
    //  get and return users
});

service.listen(1234);

如果您需要从模块中公开其他项目,您可以轻松地做到这一点,以使它们在服务实现文件中也可用。

于 2012-05-16T23:00:22.087 回答