CRUD express.JS与mysql问题

时间:2016-12-29 01:01:03

标签: node.js express

我将此作为Express index.js的配置:

var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var router = express.Router();

 //connection database
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'root',
password : '',
database : 'learn'
});

connection.connect(function (err){
 if (err) throw err; 
    console.log('Database connected . . . \n\n');

});

router.get('/', function(req, res, next) {
  var sql = 'SELECT * FROM `test`';
   connection.query(sql, function(err, rows, field){
     if (err) throw err; 
     res.render('index', {
        data: rows
      })
   });
 });

 router.get('/add', function (req, res, next){
   res.render('add_costumer', {title: 'Update'});
 });

 router.post('/add', function (req, res){

    var input = req.body;

  var data = {

    name : input.name,
    email : input.email,
    phone : input.number_phone
   };

connection.query('INSERT INTO `test` SET ?', data, function(err,rows){

    if(err) throw err;

        console.log("Error inserting : %s ",err );
        res.redirect('/');
  });

 });

 router.get('/update', function (req, res, next){
   res.render('update', {judul: 'Add'});

 });

 module.exports = router;

但是当我在我的路线中要求req.body.something时,我得到一些错误指向无法读取未定义的属性'name'。以下是使用req.body的路由示例以及打印代码的此图片:

output like this

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

看起来你需要body-parser但实际上并没有使用它。

根据您接受的内容类型,您应该这样做:

app.use(bodyParser.json()); // where app is your express app
app.use(bodyParser.urlencoded({ extended: true});