nodjs开发系列koa框架
Posted 海内知天涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodjs开发系列koa框架相关的知识,希望对你有一定的参考价值。
koa是一个轻量级web框架,由express框架原班人马打造。koa引入了中间件的模式,解决了大量回调函数导致代码混乱的问题。
依赖包安装
新建一个应用目录koawx,在目录中新建package.json文件,文件内容如下:
{
"name": "koawx",
"version": "1.0.0",
"description": "Hello Koa 2 example with async",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"keywords": [
"koa",
"async"
],
"author": "xiaop",
"license": "Apache-2.0",
"dependencies": {
"koa": "2.5.0",
"koa-router": "7.4.0",
"koa-bodyparser": "4.2.0"
}
}
然后执行npm install,会自动安装dependencies中的依赖。
koa框架的基本使用
const Koa = require('koa'); //引入koa包
const app = new Koa(); // 创建koa对象
app.use(ctx => {
console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
ctx.body="Hello World"; //ctx.response.body的简写
}); // 每收到一个http请求,koa就会调用通过app.use()注册的函数,传入封装了request、response对象的参数ctx
app.listen(3000); // 监听3000端口
console.log('app started at port 3000...');
将以上代码放入app.js文件中,运行node app.js即可启动一个web服务器,通过localhost:3000访问将返回Hello World。
如果要异步执行,只需
app.use(async (ctx,next) => {
console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
await next();
ctx.body="Hello World";
});
由async标记的函数称为异步函数,在异步函数中,可以用await调用另一个异步函数,达到同步的效果。next是需要处理的下一个函数。异步函数执行的顺序跟app.use的顺序有关,将上面的代码分解如下:
app.use(async (ctx,next) => {
console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
await next();
});
app.use(async (ctx,next) => {
ctx.body="Hello World";
});
每个async定义的函数称为middleware,每个middleware按app.use的顺序执行,这样所以请求将先进入第一个app.use部分处理,然后再进入第二个。如果一个middleware中没有await next()的话,以后的middleware就不会执行了。
以上是关于nodjs开发系列koa框架的主要内容,如果未能解决你的问题,请参考以下文章