NodeJS 中使用koa创建一个服务器,返回hello world

NodeJS 中使用koa创建一个服务器

  1. koa基于NodeJS平台开发的web框架 文档说明
  2. 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件,因此需要的中间件都需要自己手动下载
  3. 安装npm i koa,编写hello world
    const Koa = require("koa")
    const app = new Koa()
    
    app.use(ctx => {
    	ctx.body = "hello world"
    })
    
    app.listen(9527,() => console.log("服务启动 localhost:9527"))
    
  4. 中间件的运行顺序,当一个中间件调用了next()方法,该函数就会暂停,将控制传递给下一个中间件,当下游没有更多的中间件执行的时候,堆栈将展开,每个中间件恢复执行上游的行为
    const Koa = require("koa")
    const app = new Koa()
    
    app.use((ctx,next) => {
    	console.log(1111)
    	next()
    	console.log(2222)
    })
    app.use((ctx,next) => {
    	console.log(3333)
    	next()
    	console.log(4444)
    })
    app.use(ctx => {
    	console.log(5555)
    })
    
    app.listen(9527,() => console.log("服务启动 localhost:9527"))
    
    最后的结果,类似于一个洋葱
    1111
    3333
    5555
    4444
    2222
    
  5. 使用路由中间件koa-router 文档说明
    安装 npm i koa-router
    const koa = require("koa")
    const Router = require("koa-router")
    
    const app = new koa()
    const router = new Router()
    
    router.get("/",(ctx) => {
        ctx.body = "hello world"
    })
    router.get("/home",(ctx) => {
        ctx.body = "home"
    })
    app
    .use(router.routes())
    .use(router.allowedMethods())
    
    app.listen(3000,() => console.log("启动 localhost:3000"))
    
  6. 解析post请求传递的数据 中间件koa-bodyparser 文档说明
    • 安装npm i koa-bodyparser
    • 注意在使用app.use(bodyparser())的时候需要放到app.use(router.routes())之前,否则获取不到数据
    • 使用这个中间件之后,post请求的数据就会通过ctx.request.body获取
    const koa = require("koa")
    const Router = require("koa-router")
    const bodyparser = require("koa-bodyparser")
    const app = new koa()
    const router = new Router()
    router.get("/",(ctx) => {
        ctx.body = "hello world"
    })
    router.get("/home",(ctx) => {
        ctx.body = "home"
    })
    router.post("/updata",async (ctx) => {
        console.log(ctx.request.body)
        ctx.body = "111"
    })
    app
    .use(bodyparser())
    .use(router.routes())
    .use(router.allowedMethods())
    app.listen(3000,() => console.log("启动 localhost:3000"))
    

你可能感兴趣的:(NodeJS)