基于Koa2的API服务器(一)

第一步:服务器搭建

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等操作,具体后面开发时继续完善。

你可能感兴趣的:(基于Koa2的API服务器(一))