我正在开发一个小型服务器,最终将用作未来服务器的样板。由于订单对中间件很重要,因此我决定将它们组合在一起以明显的顺序组合在一起。我的目标是为中间件和路由添加一个抽象级别,以便以后可以将它们换出,而无需对入口点进行太多更改。
鉴于此信息,使用compose
似乎是一种反模式,因为中间件/路由本身是不纯的,并修改传入的(app)
?
'use strict';
import { createServer } from 'http';
import express from 'express';
import { flowRight as compose } from 'lodash';
import { system, environment } from './config';
import routes from './routes';
const setup = compose(routes, system);
const app = setup(express());
createServer(app)
.listen(environment.port, environment.ip, () => {
console.log('Server running!');
});