gpt4 book ai didi

javascript - Req.Body 返回 "undefined"值

转载 作者:行者123 更新时间:2023-11-30 11:01:12 25 4
gpt4 key购买 nike

我已将 body-parser 添加到我的应用程序 app.js 文件中。我有一个 routes 文件夹和一个 controllers 文件夹来处理我的请求。

最初,我没有将 body-parser 添加到我的应用程序中。当我添加 body-parser 并且控制台记录了 req.body 时,我得到了一个空对象。当我控制台记录来自 postman< 的 req.body.emailreq.body.passwordreq.body.displayName 值时 被读取为未定义。

应用程序.js

let createError = require('http-errors');
let express = require('express');
let path = require('path');
let cookieParser = require('cookie-parser');
let logger = require('morgan');
let bodyParser = require('body-parser');
let assert = require('assert');

if (process.env.NODE_ENV !== 'production') {
require('dotenv').config()
}

let usersRouter = require('./routes/user');

let app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use('/user', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error');
});

// MongoDB Connection
const db = {};
const MongoClient = require('mongodb').MongoClient;

MongoClient.connect(process.env.MONGODB_CONNECT_URL, (err, client) => {
// Connection works dont worry about it
});

module.exports = app;

路由/user.js

const express = require('express');
const router = express.Router();
const user = require('../controllers/user');

router.post('/', user.createUser);
router.delete('/:id', user.deleteUser);
router.get('/:id', user.loginUser);

module.exports = router;

Controller /user.js

const bcrypt = require('bcryptjs');
const Joi = require('joi');
const ObjectId = require('mongodb').ObjectID;

exports.createUser = async (req, res, next) => {
console.log('Request body: ', req.body);
const email = req.body.email;
const password = req.body.password;
const displayName = req.body.displayName;

console.log('Email: ', email);
console.log('Password: ', password);
console.log('Display name: ', displayName);
};

最佳答案

请确保您在 postman content-type : application/json 中添加了内容类型 header ,还在 body 选项卡中选择 raw,并在 raw 旁边从下拉列表中选择 json。检查这个

/image/ZDhcl.png

关于javascript - Req.Body 返回 "undefined"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57647468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com