zoukankan      html  css  js  c++  java
  • express中的表单处理

      此篇文章主要介绍node框架express中表单处理相关细节,一些常识不再说

      (1)基础:表单的name属性很重要,后端代码根据这个属性获取数据

      (2)表单编码方式:一般默认:application/x-wwwform-urlencoded 

                上传文件:multipart/form-data 

      (3)后端代码处理表单请求的方式一般是重定向

      (4)express表单处理:

        ①如果使用 GET 进行表单处理,表单域在 req.query 对象中。例如,如果有一个名称属性为 email 的 HTML 输入字段,它的值会以 req.query.email 的形式传递到处理程序 

        ②如果使用 POST(推荐使用的),需要引入中间件来解析 URL 编码体。首先,安装 body-parser 中间件(npm install--savebody-parser),然后引入: 

          app.use(require('body-parser')());

          req.body变得可用

        ③ajax表单请求:

        

    //其中,req.accepts()函数是判断返回类型是html合适还是json合适
    app.post('/process', function(req, res){ if(req.xhr||req.accepts('json,html')==='json'){ res.send({success:true}); }else{ res.redirect(303, '/thank_you'); } });

         ④文件上传:需要引入中间件formidable来处理文件上传问题: npm install --save formidable

        然后进行文件处理

    app.post('/contest/photo/:year/:month', function(req, res){
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files){
            if(err)
                return res.redirect(303, '/error');
            console.log('received fields:');
            console.log(fields);
            console.log('received files:');
            //files里面有上传文件的各种信息
            console.log(files);
            res.redirect(303, '/thank-you');
        });
    });

          

  • 相关阅读:
    练习与突破
    HTML input type=file文件选择表单的汇总(一)
    webpack学习之—— Configuration(配置)
    webpack学习之—— Plugins
    webpack学习之—— Loaders
    webpack学习之——Output
    webpack学习之——Entry Points(入口起点)
    CSS3 3D transform变换
    get和post请求的区别
    日期格式之——剩余时间(天,小时,分,秒)的计算方法
  • 原文地址:https://www.cnblogs.com/jakii/p/5136502.html
Copyright © 2011-2022 走看看