KoaJS 表单数据

  • 定义和使用

    表单是 web 不可分割的一部分。几乎每一个我们访问的网站都会为我们提供提交或获取一些信息的表格。为了开始使用表单,我们将首先安装 koa-body。
    要安装这个,请转到您的终端并使用-
    $ npm install --save koa-body
    
    接下来看看 koa-body 怎么使用
  • 示例

    更换您的 app.js 使用以下代码将内容归档。
    var koa = require('koa');
    var router = require('koa-router'); //实例化路由器
    var bodyParser = require('koa-body');
    var app = new koa();
    
    var _router = router();   //实例化路由器
    var Pug = require('koa-pug');
    var pug = new Pug({
        viewPath: './views',
        basedir: './views',
        app: app 
    });
    
    app.use(bodyParser({
        formidable:{uploadDir: './uploads'},
        multipart: true,
        urlencoded: true
    }));
        
    _router.get('/', async (ctx)=>{
        await ctx.render('form');
    });
    
    _router.post('/', async (ctx)=>{
        console.log(ctx.request.body);
        console.log(ctx.req.body);
        ctx.body = ctx.request.body; //ctx是存储解析后的请求的地方
    });
    app.use(_router.routes());  //使用路由器定义的路由
    
    app.listen(3001);
    
    我们在这里做的新工作是导入 body 解析器和 multer。我们使用主体解析器解析 json 和 x-www-form-urlencoded 头请求,而使用multer 解析多部分/表单数据。
    让我们创建一个 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") 请代我问候
    
    现在转到 http://localhost:3001/ 返回 form.pug 的内容页面。
    pug
    然后你想怎么填就怎么填,然后提交。您将收到的响应为-
    pug
    这个 ctx.request.body 对象包含已分析的请求正文。要使用该对象中的字段,只需将它们用作普通 JS 对象即可。
    这只是发送请求的一种方式。还有很多其他的方法,但这些都与这里无关,因为我们的 Koa 应用程序将以相同的方式处理所有这些请求。要了解更多关于提出请求的不同方法的信息,请查看此页