繁体   English   中英

快递中的 req.body 为空

[英]req.body is empty in express

我正在使用快速框架在窗口中创建一个 nodejs api。 我已经使用过 body-parser.json()。 但是 req.body 在 linux 中变为空。该程序在 windows 中正常工作,但在 linux 中,req.body 为空,req.body.name 键未定义。

我已经尝试了以下步骤: - app.use(bodyParser.urlencoded({extended:true})) app.use(bodyParser.json())

const express = require('express'),
      app = express(),
      config = require('./config/configFile'),
      route = require('./routes/userRoute'),
      bodyParser = require('body-parser'),
      mongoose = require('mongoose')

app.use(bodyParser.urlencoded({extended:true}))
app.use(bodyParser.json()) // with this you can send the data to api in json format

app.get('/',(req,res)=>{
    res.send({
        "message":"API started"
    })
})

app.use('/api/',route)

mongoose.Promise = global.Promise
mongoose.connect(config.dbPath,{useNewUrlParser: true})
    .then(()=>{
        console.log("Db is connected")
    }).catch(err=>{
        console.log(err)
    })

app.listen(config.serverPort,()=>{
    console.log('server started')
})




const userModel = require('../models/userModel')

module.exports = {
    "registerUser": (req,res)=>{
        if(!req.body){
            res.status(400).send({
                "message": "User Detail Cannot be empty"
            })
        } else{
            const user = new userModel({
                name : req.body.name,
                email : req.body.email,
                password : req.body.password
            })
            user.save().then(data=>{
                res.status(200).send(data)
            }).catch(err=>{
                res.status(500).send({
                    "message": err.message || "Something went wrong"
                })
            })
        }
    },
    "login":(req,res)=>{
        res.send({
            "message":"This is an register method"
        })
    }
}

在您的路由文件中,您可以处理 POST 请求,例如,

var express = require('express');
var router = express.Router();

router.post('/', function(req, res, next) {
  // req.body will contain the body data.
  res.send('respond with a resource');
});

module.exports = router;

您需要使用快速路由器注册您的路线。 您的 userRoute.js 必须看起来像这样。

var express = require('express');
var router = express.Router();



router.post("/registerUser", (req,res)=>{
        if(!req.body){
            res.status(400).send({
                "message": "User Detail Cannot be empty"
            })
        } else{
            const user = new userModel({
                name : req.body.name,
                email : req.body.email,
                password : req.body.password
            })
            user.save().then(data=>{
                res.status(200).send(data)
            }).catch(err=>{
                res.status(500).send({
                    "message": err.message || "Something went wrong"
                })
            })
            res.send(req.body)
        }
    });


router.post("/login", (req,res)=>{
       res.send({
            "message":"This is an register method"
        })
   });




module.exports = router;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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