我正在编写一堆Web服务,这些服务都有一些共同的模式。例如,他们都共享相同的要求
var x = require(...);
var y = require(...);
进行类似的身份验证
var auth = express.basicAuth(...);
server.use(auth);
并有类似的错误消息。
server.error(function(err, req, res, next){
...
});
有没有办法在一个共同的地方写上述内容,这样如果有任何改变,我可以做一次改变而不是五或六次?
答案 0 :(得分: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);
如果您需要公开模块中的其他项目,您可以轻松地在服务实现文件中使用它们。