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 }));