Koa中post提交数据及访问静态资源

查看更多资源

1. 原生Nodejs在Koa中获取表单提交的数据

// app.js

var Koa = require('koa'),
  router = require('koa-router')(),
  views = require('koa-views'),
  common = require('./module/common.js'); // 引入 封装模块
var app = new Koa();

app.use(views('views', {/*应用ejs模板引擎*/
  extension: 'ejs'
}))

router.get('/', async (ctx) => {
  await ctx.render('index');
})

//接收post提交的数据
router.post('/doAdd', async (ctx) => {
  //原生nodejs 在koa中获取表单提交的数据
  var data = await common.getPostData(ctx);
  console.log(data);
  ctx.body = data;
})

app.use(router.routes());   /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);
// common.js
exports.getPostData = function (ctx) {
  return new Promise(function (resolve, reject) {
    try {
      let str = '';
      ctx.req.on('data', function (chunk) {
        str += chunk;
      })
      ctx.req.on('end', function (chunk) {
        resolve(str)
      })
    } catch (err) {
      reject(err)
    }
  })
}

2. Koa中koa-bodyparser中间件的使用

// 1. 安装
npm install --save koa-bodyparser

var Koa = require('koa'),
  router = require('koa-router')(),
  views = require('koa-views'),
  bodyParser = require('koa-bodyparser'); // 2. 引用

var app = new Koa();

app.use(views('views', {/*应用ejs模板引擎*/
  extension: 'ejs'
}))

app.use(bodyParser());// 3. 配置post bodyparser的中间件

router.get('/', async (ctx) => {
  await ctx.render('index');
})

//接收post提交的数据
router.post('/doAdd', async (ctx) => {
  console.log(ctx.request.body);
  ctx.body = ctx.request.body;  // 4. 获取表单提交的数据
})

app.use(router.routes());   /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);

3. koa-static - 静态资源中间件 - 静态web服务

// 1. 安装
cnpm install  koa-static --save
var Koa = require('koa'),
  router = require('koa-router')(),
  views = require('koa-views'),
  bodyParser = require('koa-bodyparser'),
  static = require('koa-static'); // 2. 引入

var app = new Koa();

app.use(views('views', {/*应用ejs模板引擎*/
  extension: 'ejs'
}))

// http://localhost:3000/css/basic.css  首先去static目录找 ,如果能找到返回对应的文件,找不到 next()

// 3. 配置静态web服务的中间件
// app.use(static('./static'));  // 方式一
app.use(static(__dirname + '/static')); // 方式二
app.use(static(__dirname + '/public')); // koa静态资源中间件可以配置多个

app.use(bodyParser()); // 配置post bodyparser的中间件

router.get('/', async (ctx) => {
  await ctx.render('index');
})

router.post('/doAdd', async (ctx) => {
  console.log(ctx.request.body);
  ctx.body = ctx.request.body;  //获取post表单提交的数据
})

app.use(router.routes());   /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值