koa应用搭建与路由配置
# 1、基础应用搭建:
创建一个 koa 项目目录
mkdir myapp
1
进入刚创建的项目
cd myapp
1
执行 npm init 生成项目配置文件:通过 npm init 命令为应用创建一个 package.json 文件。
npm init
1
此命令将要求输入几个参数,如应用名、版本号、描述、作者等。可以直接按‘回车’使用默认的。此命令将要求输入几个参数,如应用名、版本号、描述、作者等。可以直接按‘回车’使用默认的。
entry poin: (index.js)
1
接下来新建一个 app.js 然后安装 koa:
键入 app.js 或者你所希望的名称,这是当前应用的入口文件。
然后安装 koa 将其保存到依赖列表中
npm install koa -S
1
然后在新建的app.js中引入koa,代码如下:
//引入Koa
const koa=require('koa');
const app=new koa();
//配置中间件
app.use( async (ctx)=>{
ctx.body='hello koa2'
})
//监听端口
app.listen(3000);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2、路由的配置:
首先需要安装koa-router
npm install koa-router -S
1
在项目根目录下创建routes目录,routes/index.js文件代码如下:
const Router = require('koa-router')
const router = new Router()
router.get('/list', async (ctx) => {
ctx.body = '列表'
})
router.get('/news', async (ctx) => {
console.log('ctx', ctx.query) // 读取get请求传递的值,如{name: '张三', age: 34}
console.log('url', ctx.url) // 中文会自动进行编码 /news?name=%E5%BC%A0%E4%B8%89&age=34
ctx.body = '新闻'
})
module.exports = router
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
在 app.js 文件中更改代码如下:
// 引入koa
const koa = require('koa')
const app = new koa()
const Router = require('koa-router')
const apiRouter = require('./routes/index')
//装载所有子路由
let router = new Router()
router.use('/api', apiRouter.routes())
// 加载路由中间件
app.use(router.routes())
.use(router.allowedMethods())
// 配置中间件
app.use(async (ctx) => {
ctx.body = 'hello world!'
})
// 监听端口号
app.listen(3000)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
现在访问localhost:3000/api/list和localhost:3000/api/news可以分别看到效果。
在get请求中可以通过ctx.query来获取get的传值。
koa-bodyparser模块使用:
在post请求中,koa-bodyparser中间件可以把koa2上下文的formData数据解析到ctx.request.body中
npm install koa-bodyparser -S
1
在 app.js 中引入配置中间件
var Koa = require('koa');
var bodyParser = require('koa-bodyparser');
var app = new Koa();
app.use(bodyParser());
1
2
3
4
5
2
3
4
5
然后在请求中就可以这样获取 post 传递的参数了
router.post('/login', async (ctx) => {
console.log('ctx', ctx.request.body)
ctx.body = 'hello world'
})
1
2
3
4
2
3
4
跨域处理:
在koa2中处理跨域,需要用到koa2-cors这个模块:
npm install koa2-cors -S
1
在 app.js 中配置中间件
var Koa = require('koa');
var cors = require('koa2-cors');
var app = new Koa();
app.use(cors());
1
2
3
4
5
2
3
4
5
静态资源加载:
在koa2中,访问静态资源,需要使用koa-static中间件
npm install koa-static -S
1
在app.js中配置中间件
const static = require('koa-static');
app.use(static(
path.join( __dirname, 'public')
))
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 7/2/2024, 11:06:45 AM