zoukankan      html  css  js  c++  java
  • koa 中获取 post 提交数据

    原生 NodeJS 获取 post 提交的数据

    request.js

    exports.getPostData=function(ctx){
        return new Promise((resolve,reject)=>{
           try {
               let params = '';
               ctx.req.on('data', (chunk) => {
                   params += chunk;
               })
               ctx.req.on('end', (chunk) => {
                   resolve(params)
               })
           } catch (error) {
               console.log("获取post提交的数据错误")
               reject(error)
           }
        })
    }
    

    app.js

    const Koa = require('koa')
    const app = new Koa()
    const router = require('koa-router')()
    const views = require('koa-views')
    const ejs = require('ejs')
    const request = require('./utils/request')
    
    //应用ejs模板引擎
    app.use(views('views',{
        extension:'ejs'
    }))
    
    router.get('/register',async (ctx)=>{
        console.log("注册页")
        await ctx.render('register')
    })
    
    router.post('/doRegister',async (ctx)=>{
        let data = await request.getPostData(ctx)
        console.log("注册页提交的数据是:", data) //userName=admin&password=123
        ctx.body=data
    })
    
    app.use(router.routes());  
    app.use(router.allowedMethods());
    app.listen(3000);

     

    使用 koa-bodyparser 中间件获取提交数据

    https://www.npmjs.com/package/koa-bodyparser

    npm install --save koa-bodyparser
     
    const Koa = require('koa')
    const app = new Koa()
    const router = require('koa-router')()
    const views = require('koa-views')
    const ejs = require('ejs')
    const bodyParser = require('koa-bodyparser')
    
    //应用ejs模板引擎
    app.use(views('views',{
        extension:'ejs'
    }))
    
    //配置 bodyParsey中间件
    app.use(bodyParser())
    
    
    router.get('/register',async (ctx)=>{
        console.log("注册页")
        await ctx.render('register')
    })
    
    router.post('/doRegister',async (ctx)=>{
        let data = ctx.request.body
        console.log("注册页提交的数据是:", data) //{"userName":"admin","password":"123"}
        ctx.body=data
    })
    
    app.use(router.routes());  
    app.use(router.allowedMethods());
    app.listen(3000);
    

     
     
     
     
     
     
     
     
     
  • 相关阅读:
    巨蟒python全栈开发-第11阶段 ansible_project4
    正则面试题
    正确的邮件发送格式?
    巨蟒python全栈开发-第11阶段 ansible_project3
    巨蟒python全栈开发-第11阶段 ansible_project2
    项目资源地址
    网络基础练习题
    巨蟒python全栈开发-第11阶段 ansible_project1
    数据库之单表查询
    数据的增删改
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/13168637.html
Copyright © 2011-2022 走看看