目录

Koa.js - 表格数据( Form Data)

表格是网络不可分割的一部分。 我们访问的几乎每个网站都为我们提供了提交或获取一些信息的表格。 要开始使用表单,我们将首先安装koa-body。 要安装它,请转到您的终端并使用 -

$ npm install --save koa-body

用以下代码替换app.js文件内容。

var koa = require('koa');
var router = require('koa-router');
var bodyParser = require('koa-body');
var app = koa();
//Set up Pug
var Pug = require('koa-pug');
var pug = new Pug({
   viewPath: './views',
   basedir: './views',
   app: app //Equivalent to app.use(pug)
});
//Set up body parsing middleware
app.use(bodyParser({
   formidable:{uploadDir: './uploads'},
   multipart: true,
   urlencoded: true
}));
_.get('/', renderForm);
_.post('/', handleForm);
function * renderForm(){
   this.render('form');
}
function *handleForm(){
   console.log(this.request.body);
   console.log(this.req.body);
   this.body = this.request.body; //This is where the parsed request is stored
}
app.use(_.routes()); 
app.listen(3000);

我们在这里做的新事物是导入身体解析器和multer。 我们使用body解析器来解析json和x-www-form-urlencoded标头请求,而我们使用multer来解析multipart/form-data。

让我们创建一个html表单来测试它! 使用以下代码创建名为form.pug的新视图。

html
   head
      title Form Tester
   body
      form(action = "/", method = "POST")
         div
            label(for = "say") Say: 
            input(name = "say" value = "Hi")
         br
         div
            label(for = "to") To: 
            input(name = "to" value = "Koa form")
         br
         button(type = "submit") Send my greetings

使用 - 运行您的服务器

nodemon index.js

现在转到localhost:3000 /并填写表单,然后提交。 你会收到回复 -

表格已收到

看看你的控制台,它会向你展示你的请求正文作为JavaScript对象。 例如 -

表格控制台

this.request.body对象包含已解析的请求正文。 要使用该对象中的字段,只需将它们用作普通的JS对象即可。

这只是发送请求的一种方式。 还有很多其他方法,但这些方法与此无关,因为我们的Koa应用程序将以相同的方式处理所有这些请求。 要阅读有关提出请求的不同方式的更多信息,请查看this页面。

↑回到顶部↑
WIKI教程 @2018