简体   繁体   中英

Node.js printing back undefined for properties in console

I'm trying to print out some data I get back after a post but it's printing as undefined. Is the parser set up correctly?

Server file

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

Thanks.

I got your code and run in locally. I do router changes Finally I make post request using curl. End of Answer I attach result.

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

controllers/registration

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

User curl to make post request 1. without parameters

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

// Console out put

{}
undefined
undefined
undefined
  1. With parameters // 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

// Console out put

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

This may help you :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM