美文网首页
koa2入门

koa2入门

作者: noyanse | 来源:发表于2018-08-02 23:16 被阅读0次

github: https://github.com/noyanse1023/learn-koa2019.git
koa 断点调试:
在vscode中在要调试的文件界面按下F5就启动了
mac 小技巧
https://www.cnblogs.com/hongrunhui/p/5928833.html
参考:https://segmentfault.com/a/1190000009494041

1.初始化项目

1.mkdir koa //新建koa文件夹
2.cd koa 
3.npm init //初始化
4.npm install koa --save

2.执行简单的demo

1.touch main.js //新建main.js文件
2.在main.js中输入:
const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);
3.执行node main.js

可以安装热nodemon 自动编译

npm i nodemon --save-dev
在package.json中写
  "scripts": {
    "start": "nodemon index.js"
  },
执行 npm start 就可以自动编译啦~~

3.搭建路由与Controller

Koa本质上是调用一系列的中间件,来处理对应的请求,并决定是否传递到下一个中间件去处理。我们来写一个最简单的中间件试试。

/*
//main.js代码
app.use(async ctx => {
  ctx.body = 'Hello World';
});
*/
//改成
app.use(ctx => {
    ctx.body = `Your website url is:${ctx.request.url}`
})
  • 这段代码中,app.use 的 function 就是最简单的一个中间件,接受了请求,读出请求路径,并返回到客户端。
  • 所以,接口的本质,就是判断不同的请求链接,干不同的事情,返回相应的结果。那么我们得需要一个路由中间件koa-router来处理分发请求
    npm install koa-router --save //安装路由中间件
    main.js:
const Koa = require('koa')
const Router = require('koa-router')
const app = new Koa()
const router = new Router()

router.get('/', ctx => {
  ctx.body = `这是主页`
})

router.get('/user', ctx => {
  ctx.body = `这是user页`
})

router.get('/post', ctx => {
  ctx.body = ctx.request.body
})

router.get('/async', async ctx => {
  const sleep = async (ms) => {
    return new Promise(resolve => {
      setTimeout(() => {
        resolve(true)
      }, ms)
    })
  }
  await sleep(1000)
  ctx.body = `这是异步处理页`
})

app
  .use(router.routes())
  .use(router.allowedMethods())

app.listen(3000)

处理 post请求,要用中间件bodyparser

npm install koa-bodyparser --save

做一下模块化处理

-koa
  -node_modules
  -controller
    user.js
  -main.js
  -router.js
  -package.json

main.js:

const Koa = require('koa');
const bodyParser = require('koa-bodyparser')
const app = new Koa();
const router = require('./router')

app.use(bodyParser())

app
    .use(router.routes())
    .use(router.allowedMethods())
    
app.listen(3000);
console.log('server is running at port 3000......')

routers:

const Router = require('koa-router')
const router = new Router()
const user = require('./controller/user')

router.post('/user/login',user.login)
router.get('/user/profile',user.profile)

module.exports = router

controller/user.js:

const sleep = async (ms) => {
    return new Promise(reslove => {
        setTimeout(() => {
            reslove(true)
        })
    },ms)
}
module.exports = {
    login(ctx) {
        ctx.body = {
            username: ctx.request.body.username
        }
    },
    async profile(ctx) {
        await sleep(1000)
        ctx.body = {
            username: '学长',
            sex: 'man',
            age: '27'
        }

    }
}

相关文章

  • koa2入门系列

    koa2入门系列(一) koa2入门系列(二) koa2入门系列(三) koa2入门系列(四) koa2入门系列(...

  • koa 洋葱模型

    分析 1、首先这是koa2最简单的入门例子,我将通过这个入门例子来演示koa2的洋葱模型 在这里面,app首先是调...

  • Koa2教程(初识篇)

    目录一、定义二、安装三、koa中间件 系列教程Koa2教程(入门篇)Koa2教程(常用中间件篇) 一、定义 一个简...

  • 关于Node框架选择

    1.WEB框架演进 Express --> Koa --> Koa2 2. Node 调试工具入门教程 http:...

  • Koa2+Nunjucks的实例介绍

    知识准备 koa入门: koa2使用的结构 什么是middleware? middleware顺序的重要性 整理笔...

  • koa2入门

    【链接】koa入门https://www.liaoxuefeng.com/wiki/001434446689867...

  • Koa2入门

    Koa2是现在最流行的基于Node.js平台的web开发框架,它很小,但扩展性很强。Koa给人一种干净利落的感觉,...

  • koa2入门

    github: https://github.com/noyanse1023/learn-koa2019.gitk...

  • Web框架Node.js Koa2 入门需要学什么?

    Web框架Node.js Koa2 入门需要学什么?前端开发需要掌握JS高级应用、异步编程、数据库Sequeliz...

  • koa2入门笔记

    环境准备:安装node.js,建议版本号>=7.6,否则需额外安装插件。 直接安装 node.js :node.j...

网友评论

      本文标题:koa2入门

      本文链接:https://www.haomeiwen.com/subject/eolevftx.html