为什么req.body总是不为我定义

时间:2017-03-23 11:44:15

标签: javascript mysql node.js express

我无法访问任何请求参数。例如req.body.username。由于某种原因,req.body总是未定义的。端点为/youtube

app.js

    var express = require('express');
    var path = require('path');
    var favicon = require('serve-favicon');
    var logger = require('morgan');
    var cookieParser = require('cookie-parser');
    var bodyParser = require('body-parser');

    var index = require('./routes/index');
    var users = require('./routes/users');

    var app = express();

    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');

    // uncomment after placing your favicon in /public
    //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));

    app.use('/', index);
    app.use('/users', users);

    // catch 404 and forward to error handler
    app.use(function(req, res, next) {
      var err = new Error('Not Found');
      err.status = 404;
      next(err);
    });

    // error handler
    app.use(function(err, req, res, next) {
      // set locals, only providing error in development
      res.locals.message = err.message;
      res.locals.error = req.app.get('env') === 'development' ? err : {};

      // render the error page
      res.status(err.status || 500);
      res.render('error');
    });

    module.exports = app;

server.js

var express   =    require("express");
var mysql     =    require('mysql');
var app       =    express();

var pool      =    mysql.createPool({
    connectionLimit : 100, //important
    host     : 'localhost',
    user     : 'user',
    password : 'pass',
    database : 'db',
    debug    :  false
});


var router = express.Router();// get an instance of the express Router

// middleware to use for all requests
router.use(function(req, res, next) {
    // do logging
    console.log('Incoming request');
    next(); // make sure we go to the next routes and don't stop here
});


app.get("/",function(req,res){-
    handle_database(req,res);
});

router.route('/youtube')

    .post(function(req, res) {

        console.log(req.body); // always undefined

    })
    .get(function(req, res) {

    });

app.use('/api', router);

app.listen(3000);
console.log("Listening on port 3000....")

1 个答案:

答案 0 :(得分:0)

在server.js中添加var app = express();正下方的3行:

var bodyParser = require('body-parser');  
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

现在你的req.body不会是undefined