表单是网页的整体部分。几乎我们访问的每一个网站都提供给我们提交或获取一些信息的表单。要开始使用表单,我们将首先安装koa-body要安装,请转到您的终端并使用:
$ npm install --save koa-body
使用以下代码替换您的app.js文件内容:
varkoa=require("koa");varrouter=require("koa-router");varbodyParser=require("koa-body");varapp=koa();//Set up PugvarPug=require("koa-pug");varpug=newPug({viewPath:"./views",basedir:"./views",app:app//Equivalent to app.use(pug)});//Set up body parsing middlewareapp.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);
我们在这里做的新事情是导入body解析器和multer。我们使用身体解析器来解析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
现在去本地主机:3000 /填写你喜欢的表格,并提交。您将得到以下响应:
看一下您的控制台,它会将您的请求的正文显示为JavaScript对象。例如:
this.request.body对象包含您解析请求主体。要使用该对象的字段,只需像普通的JS对象一样使用它们。
这只是发送请求的一种方式。还有许多其他方法,但是这些都是无关紧要的,因为我们的Koa应用程序将以相同的方式处理所有这些请求。要了解有关提出请求的不同方式的更多信息,请查看此页面。