第一步:服务器搭建
KOA2相关说明文档可以直接查阅koa的官方文档,度娘,谷哥也比较多,就不阐述了。
具体实现HTTPServer见代码(因Node8未实现import,服务端未使用import):
const Koa = require("koa");
const path = require('path');
const router = require("./routes/router");
const app = new Koa();
app.use(async(ctx, next) => {
console.log(ctx.method, ctx.url);
await next();
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, async() => {
console.log("[sexcc] start at port 3000")
})
说明:
- 代码1:
....导入相关依赖
const router = require("./routes/router");
//这句代码到作用,后面会说明,主要用于分模块,分实例的路由
.....
代码2:
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, async() => {
console.log("[sexcc] start at port 3000")
})
注册使用koa-route路由组件, 并启动服务器,使用端口3000,启动完成后控制台输出记录
代码3:
app.use(async(ctx, next) => {
console.log(ctx.method, ctx.url);
await next();
});
刚开始入门时,看到很多例子,都有这个代码,但是没有await next()这句,程序死活进不了下一步,查了下官方文档,了解洋葱模型即可明白,简单说明下,这段代码,该代码的作用类似一个全局观察者,基本上请求都会走到这里,这时如没有next(),程序将会将respones丢出去,进不了下一步,使用next后,先去处理下一步,拿到下一步的返回,这里在组合丢出respones,各位看官是否发现了一个用处?没错,这里可以对数据做一些再次封装,还有logger等操作,具体后面开发时继续完善。