Reputation: 1960
I have a route in my express.js app on a domain example1.com
:
router.post('/messages/add', (req, res) => {
let message = new Message();
message.title = req.body.title;
message.body = req.body.body;
message.save(err => {
if(err) {
return res.json({ success: false });
} else {
return res.json({ success: false });
}
});
});
How do I pass the message to another express app's endpoint on a domain example2.com
?
UPDATE
Updated the code using the request module suggested by YouneL. example2.com
receives an empty object:
UPDATE 2
Finally got it working. Had to put form:formData
instead of formData:formData
in the request.post()
options.
Server/domain 1:
router.post('/messages/add', function (req, res) {
let formData = {
title: req.body.title,
body: req.body.body
}
request.post({
url:'http://example2.com/api/messages/add',
form:formData}, function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
});
Server/domain 2:
router.post('/contacts/add', function (req, res) {
let message = new Message(); // Mongoose model
message.title = req.body.title;
message.body = req.body.body;
req.checkBody('title', 'Title is required').notEmpty();
req.checkBody('body', 'Body is required').notEmpty();
let errors = req.validationErrors();
if (errors) {
res.json({ success: false, msg: errors });
} else {
contact.save(function (err) {
if (err) {
console.log(err);
res.json({ success: false, msg: 'Failed to add message' });
} else {
res.json({ success: true, msg: 'Message added' });
}
});
}
});
Upvotes: 2
Views: 9766
Reputation: 8369
You could use request module to send another post request to example2.com
, here is an example:
router.post('/messages/add', (req, res) => {
let message = new Message();
message.title = req.body.title;
message.body = req.body.body;
message.save(err => {
if (err) {
return res.json({ success: false });
}
// post data to example2.com
request.post({ url:'example2.com', form: req.body }, (err, httpResponse, body) => {
if (err) {
return res.json({ success: false, msg: 'cannot post to example2.com' });
}
res.json({ success: true });
});
});
});
Upvotes: 4