koa
hello world
- const Koa = require('koa')
- const app = new Koa()
- app.listen(8000,()=>{
- console.log('koa server success')
- })
复制代码 中间件:只能通过use来注册中间件
- // 中间件
- app.use((ctx,next)=>{
- console.log('koa 普通中间件')
- ctx.response.body = 'hello koa middleware'
- next()
- })
复制代码 路由使用 koa-router
安装 npm install koa-router
创建路由文件 routers/users.js
- //routers/users.js
- const Router = require('koa-router')
- const router = new Router({prefix:'/users'})
- // 用户列表接口 /users/lists
- router.get('/lists', (ctx, next) => {
- ctx.response.body = 'user lists'
- })
- module.exports = router
复制代码 引入路由,注册路由
- const Koa = require('koa')
- const userRouter = require('./routers/user')
- const app = new Koa()
- // 使用路由
- app.use(userRouter.routes())
- // 处理405和501错误
- app.use(userRouter.allowedMethods())
- app.listen(8000,()=>{
- console.log('koa server success')
- })
复制代码 参数解析
params 和 query
- const router = require('koa-router')
- const userRouter = new router({prefix:'/users'})
- userRouter.get('/:id', (ctx,next)=>{
- console.log('获取params参数', ctx.params)
- console.log('获取query参数', ctx.query)
- ctx.response.body = 'user id:'+ctx.params.id
- })
- app.use(userRouter.routes())
- //请求路径 /users/yyy?username=yyy&password=123456Aa
- //打印内容
- //获取params参数 { id: 'yyy' }
- //获取query参数 { username: 'yyy', password: '123456Aa' }
复制代码 json 和 urlencoded
安装第三方插件 koa-bodyparser'
npm install koa-bodyparser'
引入插件,自动解析json和urlencoded参数
- const bodyParser = require('koa-bodyparser')
- app.use(bodyParser())
- app.use((ctx,next)=>{
-
- console.log('请求体参数', ctx.request.body)
- ctx.response.body = 'requset body parser'
- })
复制代码 form-data 参数解析
安装koa-multer插件
npm install koa-multer
引入,注册插件
`
const multer = require('koa-multer')
const upload = multer()
loginRouter.post('/', upload.any(), (ctx,next)=>{
console.log('form-data 数据', ctx.req.body) // 注意是在ctx.req.body中获取解析数据
ctx.response.body = 'login success'
})
`
文件上传
- const multer = require('koa-multer')
- const storage = multer.diskStorage({
- // 文件保存路径
- destination: function (req, file, cb) {
- cb(null, './uploads/')
- },
- // 修改文件名称
- filename: function (req, file, cb) {
- console.log('file', file)
- // 使用更安全的方式生成文件名
- const filename = Date.now() + '-' + Math.round(Math.random() * 1E9) + file.originalname
- cb(null, filename)
- }
- })
- const upload = multer({storage: storage})
- uploadRouter.post('/image', upload.single('file'), (ctx,next)=>{
- ctx.response.body = 'upload success'
- })
复制代码 部署静态资源
安装插件 npm install koa-static
部署
- const staticAssets= require('koa-static')
- app.use(staticAssets(__dirname + '/public')) // 接收静态资源目录
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |