node+express接收post过来的表单数据






    
    
    
    Document
    


    
注册账号

 

/**
*       index.js
*       用于启动服务
*/
//启动服务
const express = require('express');
const router = require('./router.js');
const app = express();
const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

//绑定路由
app.use(router);

app.listen(8080,function(err){
    if(err){
        console.log("服务器开启失败!");
    }
})
/**
*    router.js
*    路由文件
*/

const express = require('express');
const router = express.Router();
const fs = require('fs');
const path = require('path');

const publicPath = path.join(__dirname,'public');
router.get('/',function(req,res){
    fs.readFile(path.join(publicPath,'formDemo.html'),function(err,data){
        //如果不先设置头的话,当接收到数据为buffer类型的时候,express会自动将头设置为 application / octet-stream
        res.set('Content-type','text/html');
        res.send(data);
    });
});

router.use('/public',express.static(publicPath));


router.post('/register',function(req,res){
    console.log(req.body);
    res.send();
});

module.exports = router;

需要注意的地方是,如果用express处理表单post过来的数据的话,直接读req.body是读不到的,必须要在路由之前加载

body-parser模块,然后设置

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

然后才可以在req.body里面读到post过来的数据。

你可能感兴趣的:(node)