我有一个nodeJS服务器。我希望能够接收POST请求并从中读取JSON数据。
/**
* Created by daniel on 27/01/17.
*/
const pug = require('pug');
var cloudinary = require('cloudinary');
var express = require('express');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
var request = require('request');
var https = require('https');
var fs = require('fs');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var app = express();
var jsonParser = bodyParser.json();
https.createServer({
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
}, app).listen(3000);
cloudinary.config({
cloud_name: 'INSERT-CLOUD-NAME-HERE',
api_key: 'INSERT-KEY-HERE',
api_secret: 'INSERT-SECRET-HERE'
});
app.get('/', function (req, res) {
res.header('Content-type', 'text/html');
return res.end('<h1>Hello, Secure World!</h1>');
});
app.post('/', jsonParser, function(req, res){
student_id = req.body['student_id'];
console.log(req.body['student_id']);
res.header('Content-type', 'text/html');
return res.end('<h1>' + student_id + '<h1>');
});
我正在使用Postman发送一个带有密钥的POST请求:student_id和值:123。但是,console.log(req.body['student_id']);
正在打印未定义。
打印req.body只返回{}。怎么了?
答案 0 :(得分:0)
最好的方法是使用正文解析器中间件来解析传入的对象。这是一个例子:
var bodyParser = require('body-parser');
var app = require('express')();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
//Now you can just access the json in the body of the request
app.post('/', function(req, res) {
res.send(req.body);
}
app.listen(3000);
我相信您可以将其纳入您自己的解决方案中。
答案 1 :(得分:0)
我的问题在于邮差。我没有正确发送JSON数据。