我正在尝试打印发布后返回的一些数据,但它打印为未定义。解析器设置正确吗?
服务器文件
const taskController = require("./controllers/registration");
const express = require('express')
const parser = require('body-parser');
const app = express()
const router = express.Router();
app.use(parser.urlencoded({extended:false}));
app.use(parser.json());
app.use("/api", router);
router.route("/register").post(taskController.register);
router.route("/login").get(taskController.login);
router.route("/logout").get(taskController.logout);
var server = app.listen(3000);
Controller
var server = require('../app.js')
const mysql = require('mysql');
exports.register = function(req, res){
console.log(req.body.fName);
console.log(req.body.lName);
console.log(req.body.id);
res.send("Registering");
};
谢谢。
最佳答案
我得到了你的代码并在本地运行。 我更改路由器 最后 我使用curl发出post请求。 答案结束我附上结果。
服务器.js
const taskController = require("./controllers/registration");
const express = require('express')
const parser = require('body-parser');
const app = express()
const router = express.Router();
app.use(parser.urlencoded({extended:false}));
app.use(parser.json());
app.use("/api", router);
// Here Change your router
router.post("/register", taskController.register);
var server = app.listen(3000);
Controller /注册
exports.register = function(req, res){
// console.log (req.body)
console.log(req.body)
// existing console.log
console.log(req.body.fName);
console.log(req.body.lName);
console.log(req.body.id);
res.send("Registering");
};
用户curl发出post请求 1.不带参数
curl -d '{}' -H "Content-Type: application/json" -X POST http://localhost:3000/api/register
//控制台输出
{}
undefined
undefined
undefined
带参数 //fName:T,lName:黑色,id:1234
curl -d '{"fName":"T", "lName":"Black", "id": 1234}' -H "内容类型:application/json"-X POST http://localhost:3000/api/register
//控制台输出
{ fName: 'T', lName: 'Black', id: 1234 }
T
Black
1234
这可能对你有帮助:)
关于javascript - Node.js 在控制台中打印回未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53690442/