Почему postman кидает пустой body?
Почему то postman кидает пустой body, но если кидать данные через headers то они успешно приходят
userControlles.js
const ApiError = require('../error/ApiError'); const bcrypt = require('bcrypt') const jwt = require('jsonwebtoken') const {Account} = require('../models/models') const generateJwt = (id, login, role) => { return jwt.sign( {id, login, role}, process.env.SECRET_KEY, {expiresIn: '24h'} ) } class UserController { async registration(req, res, next) { const {login, password, role} = req.body if (!login || !password) { return next(ApiError.badRequest('Некорректный логин или пароль')) } const candidate = await Account.findOne({where: {login}}) if (candidate) { return next(ApiError.badRequest('Пользователь с таким логином уже существует')) } const hashPassword = await bcrypt.hash(password, 5) const user = await Account.create({login, role, password: hashPassword}) const token = generateJwt(user.id, user.login, user.role) return res.json({token}) } async login(req, res, next) { const {login, password} = req.body const user = await Account.findOne({where: {login}}) if (!user) { return next(ApiError.internal('Пользователь не найден')) } let comparePassword = bcrypt.compareSync(password, user.password) if (!comparePassword) { return next(ApiError.internal('Указан неверный пароль')) } const token = generateJwt(user.id, user.login, user.role) return res.json({token}) } async getUsers(req, res, next) { const users = await Account.findAll() return res.json({users}) } async deleteUser(req, res, next) { const {id} = req.headers const user = await Account.findOne({where: id}) if (!user) { return next(ApiError.internal('Пользователь не найден')) } await user.destroy() return res.json({message: `Пользователь: ${id}, удален!`}) } } module.exports = new UserController() |
const ApiError = require('../error/ApiError'); const bcrypt = require('bcrypt') const jwt = require('jsonwebtoken') const {Account} = require('../models/models') const generateJwt = (id, login, role) => { return jwt.sign( {id, login, role}, process.env.SECRET_KEY, {expiresIn: '24h'} ) } class UserController { async registration(req, res, next) { const {login, password, role} = req.body if (!login || !password) { return next(ApiError.badRequest('Некорректный логин или пароль')) } const candidate = await Account.findOne({where: {login}}) if (candidate) { return next(ApiError.badRequest('Пользователь с таким логином уже существует')) } const hashPassword = await bcrypt.hash(password, 5) const user = await Account.create({login, role, password: hashPassword}) const token = generateJwt(user.id, user.login, user.role) return res.json({token}) } async login(req, res, next) { const {login, password} = req.body const user = await Account.findOne({where: {login}}) if (!user) { return next(ApiError.internal('Пользователь не найден')) } let comparePassword = bcrypt.compareSync(password, user.password) if (!comparePassword) { return next(ApiError.internal('Указан неверный пароль')) } const token = generateJwt(user.id, user.login, user.role) return res.json({token}) } async getUsers(req, res, next) { const users = await Account.findAll() return res.json({users}) } async deleteUser(req, res, next) { const {id} = req.headers const user = await Account.findOne({where: id}) if (!user) { return next(ApiError.internal('Пользователь не найден')) } await user.destroy() return res.json({message: `Пользователь: ${id}, удален!`}) } } module.exports = new UserController()
Дополнительно:
в заголовках прописал что ожидается json?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблема с тем, что Postman кидает пустой body, может возникать по нескольким причинам. Давайте рассмотрим несколько возможных причин и способы их решения:
1. Неправильный Content-Type: Убедитесь, что вы установили правильный заголовок Content-Type для вашего запроса. Например, если вы отправляете JSON данные, убедитесь что у вас есть заголовок Content-Type: application/json. Если Content-Type неправильно указан, сервер может не распознать данные в теле запроса.
Content-Type: application/json
2. Неправильный формат данных: Проверьте данные, которые вы отправляете в теле запроса. Убедитесь, что данные соответствуют формату, который ожидает сервер. Например, если сервер ожидает JSON данные, убедитесь, что вы правильно сформировали JSON объект.
{ "key": "value" }
3. Проблемы с авторизацией: Если ваш запрос требует авторизации, убедитесь, что вы правильно настроили авторизацию в Postman. Проверьте токены доступа или логин/пароль, чтобы убедиться, что они корректны.
4. Проблемы с сетью: Иногда проблема может быть связана с сетью или настройками прокси. Попробуйте отправить запрос с другого устройства или с другой сети, чтобы исключить возможные проблемы с сетью.
Если после проверки всех вышеперечисленных причин проблема все еще не решена, рекомендуется обратиться к документации API, чтобы убедиться, что вы правильно формируете запросы. Также можно обратиться к администратору сервера, чтобы выяснить возможные проблемы с настройками сервера.