引言
1.什么是koa koa是由 Express原班人马打造的,是现在比较流行的基于Node.js平台的web开发框架,Koa 把 Express 中内置的 router、view 等功能都移除了,使得框架本身更轻量,而且扩展性很强。使用koa编写web应用,可以免除重复繁琐的回调函数。
快速开始
1.安装并启动koa
$ npm init -y
//安装koa命令
$ npm i koa --save
//安装koa-router命令
$ npm i koa-router --save
//新建app.js文件
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
router.get('/',async(ctx)=>{
ctx.body = {
msg:'hello world'
}
})
app.use(router.routes())
app.listen(3000)
console.log('服务启动')
文件目录
用node运行app.js
这样我们就简单开启了一个koa项目
2.koa-router模块化
因为koa不支持es6的模块化导出,为了方便后续文件的导入、导出,我们先新建一个.babelrc 添加如下代码
{
"presets": [
["@babel/env", {
"targets": {
"node": "current"
}
}]
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread"
]
}
然后安装babel插件
npm install @babel/core @babel/cli @babel/preset-env @babel/node -D
然后在packge.json添加命令
然后通过npm run dev启动项目
新建一个名为router的文件夹,在其中新建index.js user.js文件
//user.js
import Router from "koa-router";
export const user = new Router();
user.get('/login',async(ctx,next)=>{
console.log(ctx.query.userName)
ctx.body= {
code:'200',
msg:'登录成功'
}
})
// index.js
import Router from 'koa-router'
import {user} from './user';
export const router = new Router()
router.use('/api',user.routes(),user.allowedMethods())
//app.js
import Koa from 'koa';
import {router} from './router/index';
const app = new Koa();
router.get('/',async(ctx)=>{
ctx.body = {
msg:'hello world'
}
})
app.use(router.routes(), router.allowedMethods())
app.listen(3000)
console.log('服务启动')
为了在修改文件后不用频繁的重启项目,我们添加nodemon插件
npm install nodemon --save-dev
然后修改packge.json的dev命令