太原seo网站建设,深圳网站建设及优化,用百度云做网站,唐山公司做网站创建应用的过程和应用本身要进行分离。路由和创建应用的过程也做一个分离。
下面实现创建应用的过程和应用本身要进行分离#xff1a;
express.js
const Application require(./application);function createApplication() {// 通过类来实现分离操作return ne…创建应用的过程和应用本身要进行分离。路由和创建应用的过程也做一个分离。
下面实现创建应用的过程和应用本身要进行分离
express.js
const Application require(./application);function createApplication() {// 通过类来实现分离操作return new Application();
}module.exports createApplication;每次创建一个应用路由系统应该是毫无关系的应该创建一个全新的路由系统
新建 application.js
const http require(http);
const url require(url);function Application() {this.routers [{path: *,method: all,handler: (req, res) {res.end(kaimo-express Cannot ${req.method} ${req.url});}} // 默认路由];
}Application.prototype.get function (path, handler) {this.routers.push({path,method: get,handler});
};Application.prototype.listen function () {const server http.createServer((req, res) {const { pathname } url.parse(req.url);const requestMethod req.method.toLowerCase();for (let i 1; i this.routers.length; i) {let { path, method, handler } this.routers[i];if (path pathname method requestMethod) {return handler(req, res);}}return this.routers[0].handler(req, res);});server.listen(...arguments);
};module.exports Application;测试一下
const express require(./kaimo-express);
const app express();// 调用回调时 会将原生的 req 和 res 传入reqres 在内部也被扩展了
// 内部不会将回调函数包装成 promise
app.get(/, (req, res) {res.end(ok);
});app.get(/add, (req, res) {res.end(add);
});app.listen(3000, () {console.log(server start 3000);console.log(在线访问地址http://localhost:3000/);
});