Запрос POST с модулем запроса в узле не работает

Я пытаюсь отправить запрос POST в свой API с помощью модуля request, но ничего не получаю, и когда я консоль записываю данные запроса, я вижу, что поля не определены, как показано на изображении ниже. Не знаю почему. Запрос POST с модулем запроса в узле не работает

Я пытался решить проблему, но безуспешно. Я не знаю, что не так. Но когда я пытаюсь отправить данные в тот же API через POSTMAN, он работает нормально, как показано на изображении ниже. Поэтому я не знаю, почему он не работает, когда я отправляю данные из внешнего интерфейса своего приложения. Запрос POST с модулем запроса в узле не работает

Мне нужна помощь в выяснении этого.

Вот мой код на стороне сервера

let express = require('express'),
	bodyParser = require('body-parser'),
	request = require('request'),
	//connect = require('connect'),
	jobRoutes = require('./routes/jobs'), //ddd
	// db 		= require('./models/app'), //ddd
	// helpers = require('./helpers/jobs'),
	
	
	// fetch = require("node-fetch"),
	path = require('path'),
	router 	= express.Router(),
	app = express(),
	port = process.env.PORT || 3000;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static('public'));
app.use(express.static(path.join(__dirname + '/public')));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');	


app.use('/api/jobs', jobRoutes);

app.post('/jobs', (req, res)=>{
		let formBody = {
	        title: req.title,
			category: req.body.category,
			description: req.body.description,
			type: req.body.type,
			url: req.body.url,
			email: req.body.email,
			apply: req.body.apply,
			location: req.body.location,
			company: req.body.company,       
	       	createdAt: Date.now()
	            };
		request.post(console.info(formBody),{url:'http://localhost:3000/api/jobs/',	form: formBody
		
		 }, function optionalCallback(err, httpResponse, body) {
		  if (err) {
		    return console.error('upload failed:', err);
		  }else{
		  	console.info('Upload successful!  Server responded with:', body);
			}
			return res.redirect('/jobs')
		});
	})
  
 app.listen(port, process.env.PORT, process.env.IP, ()=> console.info(`Server is running on ${port}`))

А вот как выглядит код сервера-получателя

let db = require ('../models/app');

exports.createJob = (req, res) => {
	console.info('The req body:',req.body)
	db.Job.create(req.body)
	.then((newJob) => {
		res.status(201).json(newJob)
	})
	.catch((err) => {
		res.send(err)
	})

}

Вы можете проверить текущий репо для большей ясности

Как выглядит ваш запрос при выполнении запроса в первом примере выше?

Christian 01.11.2018 10:58

Точно так же, как я разместил это во фрагменте кода - req.post

seyi 01.11.2018 11:04

На принимающем конечном сервере отсутствует bodyParser.

Quentin 29.11.2018 11:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
187
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

But when i try to send data to the same API via POSTMAN it works fine as seen in the image below.

Изображение показывает, что Content-Type запроса от Postman будет application/json, но код, использующий модуль request, отправит его с Content-Type application/x-www-form-urlencoded.

Предположительно (ваш «код получающего конечного сервера» не показывает bodyParser), ваш сервер поддерживает только запросы в формате JSON.

Либо настройте сервер для поддержки application/x-www-form-urlencoded, либо отправьте запрос в формате JSON.

Другие вопросы по теме