Node+express postからフォームデータを受信

3970 ワード






    
    
    
    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;

注意すべき点は、フォームpostからのデータをexpressで処理する場合、reqを直接読むことです。bodyは読めません。ルーティングの前にロードしなければなりません。


body-parserモジュール、設定

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

そしてreq.bodyでpostからのデータを読みました。