找回密码
 立即注册
首页 业界区 业界 koa学习

koa学习

鞠彗云 3 小时前
koa

hello world
  1. const Koa = require('koa')
  2. const app = new Koa()
  3. app.listen(8000,()=>{
  4.   console.log('koa server success')
  5. })
复制代码
中间件:只能通过use来注册中间件
  1. // 中间件
  2. app.use((ctx,next)=>{
  3.   console.log('koa 普通中间件')
  4.   ctx.response.body = 'hello koa middleware'
  5.   next()
  6. })
复制代码
路由使用 koa-router

安装 npm install koa-router

创建路由文件 routers/users.js
  1. //routers/users.js
  2. const Router = require('koa-router')
  3. const router = new Router({prefix:'/users'})
  4. // 用户列表接口 /users/lists
  5. router.get('/lists',  (ctx, next) => {
  6.   ctx.response.body = 'user lists'
  7. })
  8. module.exports = router
复制代码
引入路由,注册路由
  1. const Koa = require('koa')
  2. const userRouter = require('./routers/user')
  3. const app = new Koa()
  4. //  使用路由
  5. app.use(userRouter.routes())
  6. // 处理405和501错误
  7. app.use(userRouter.allowedMethods())
  8. app.listen(8000,()=>{
  9.   console.log('koa server success')
  10. })
复制代码
参数解析

params 和 query
  1. const router = require('koa-router')
  2. const userRouter = new router({prefix:'/users'})
  3. userRouter.get('/:id', (ctx,next)=>{
  4.   console.log('获取params参数', ctx.params)
  5.   console.log('获取query参数', ctx.query)
  6.   ctx.response.body = 'user id:'+ctx.params.id
  7. })
  8. app.use(userRouter.routes())
  9. //请求路径 /users/yyy?username=yyy&password=123456Aa
  10. //打印内容
  11. //获取params参数 { id: 'yyy' }
  12. //获取query参数 { username: 'yyy', password: '123456Aa' }
复制代码
json 和 urlencoded

安装第三方插件 koa-bodyparser'

npm install koa-bodyparser'
引入插件,自动解析json和urlencoded参数
  1. const bodyParser = require('koa-bodyparser')
  2. app.use(bodyParser())
  3. app.use((ctx,next)=>{
  4.    
  5.     console.log('请求体参数', ctx.request.body)
  6.     ctx.response.body = 'requset body parser'
  7. })
复制代码
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'
})
`
文件上传
  1. const multer = require('koa-multer')
  2. const storage = multer.diskStorage({
  3.     // 文件保存路径
  4.     destination: function (req, file, cb) {
  5.         cb(null, './uploads/')
  6.     },
  7.     // 修改文件名称
  8.     filename: function (req, file, cb) {  
  9.       console.log('file', file)
  10.       // 使用更安全的方式生成文件名
  11.       const filename = Date.now() + '-' + Math.round(Math.random() * 1E9) + file.originalname
  12.       cb(null, filename)
  13.     }
  14. })
  15. const upload = multer({storage: storage})
  16. uploadRouter.post('/image', upload.single('file'), (ctx,next)=>{
  17.     ctx.response.body = 'upload success'
  18. })
复制代码
部署静态资源

安装插件 npm install koa-static

部署
  1. const staticAssets= require('koa-static')
  2. app.use(staticAssets(__dirname + '/public')) // 接收静态资源目录
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册