koa2基础(一)

koa2基础(一)

码农世界 2024-05-17 前端 64 次浏览 0个评论

一、安装

# 项目初始化
npm init -y
# 安装koa2
npm i koa2

二、入口文件

在项目根目录创建 app.js 文件,并在上一步操作中生成的 package.json 里配置:

package.json

{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
}

 app.js

const Koa = require('koa2');
const app = new Koa();
const port = 9000;
/* 
	解释下面这段代码:
	app.use()方法是:将给定的中间件方法添加到此应用程序。简单说就是调用中间件
	app.use() 返回 this, 因此可以链式表达
*/
app.use(async (ctx)=>{
    ctx.body = "Hello, Koa";
  	// ctx.body是ctx.response.body的简写
})
app.listen(port, ()=>{
    console.log('Server is running at http://localhost:'+port);
})

三、洋葱模型

const Koa = require('koa2');
const app = new Koa();
const port = 9000;
app.use(async (ctx, next)=>{
    console.log(1)
    await next();
    console.log(1)
})
app.use(async (ctx, next)=>{
    console.log(2)
    await next();
    console.log(2)
})
app.use(async (ctx)=>{
    console.log(3)
})
app.listen(port, ()=>{
    console.log('Server is running at http://localhost:'+port);
})
//输出
1
2
3
2
1

四、路由中间件

npm i koa-router
const Koa = require('koa2');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
const port = 9000;
router.get('/', async (ctx)=>{
    ctx.body = "首页";
})
router.get('/list', async (ctx)=>{
    ctx.body = "列表页";
})
app.use(router.routes(), router.allowedMethods());
app.listen(port, ()=>{
    console.log('Server is running at http://localhost:'+port);
})

备注:

// 调用router.routes()来组装匹配好的路由,返回一个合并好的中间件
// 调用router.allowedMethods()获得一个中间件,当发送了不符合的请求时,会返回 `405 Method Not Allowed` 或 `501 Not Implemented`
allowedMethods方法可以做以下配置:
app.use(router.allowedMethods({ 
    // throw: true, // 抛出错误,代替设置响应头状态
    // notImplemented: () => '不支持当前请求所需要的功能',
    // methodNotAllowed: () => '不支持的请求方式'
}))

五、路由拆分

1、基础使用

抽取出一个list路径

2、路由重定向

把/重定向到/home

router.redirect('/', '/home');

转载请注明来自码农世界,本文标题:《koa2基础(一)》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,64人围观)参与讨论

还没有评论,来说两句吧...

Top