Node.js打印回未定义的控制台属性

时间:2018-12-09 07:57:13

标签: javascript node.js express routing body-parser

我正在尝试打印出发布后返回的一些数据,但是打印时未定义。解析器设置正确吗?

服务器文件

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

控制器

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

谢谢。

1 个答案:

答案 0 :(得分:0)

我得到了您的代码并在本地运行。 我做路由器更改 最后 我使用curl发出发布请求。 答案结束我附上结果。

Server.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);

控制器/注册

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

用户卷曲以发出发布请求 1.没有参数

curl -d '{}' -H "Content-Type: application/json" -X POST http://localhost:3000/api/register

//控制台输出

{}
undefined
undefined
undefined
  1. 带参数 // fName:T,lName:Black,id:1234

    curl -d'{“ fName”:“ T”,“ lName”:“ Black”,“ id”:1234}'-H“ Content-Type:application / json” -X POST http://localhost:3000/api/register

//控制台输出

{ fName: 'T', lName: 'Black', id: 1234 }
T
Black
1234

这可能会帮助您:)