我的 express.js 应用程序在域上有一条路由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 });
}
});
});
如何将消息传递到域上另一个 Express 应用程序的端点example2.com
?
UPDATE
使用更新了代码request https://github.com/request/request#forms模块建议者YouneL https://stackoverflow.com/a/48604043/5861479. example2.com
接收一个空对象:
UPDATE 2
终于成功了。不得不放form:formData
代替formData:formData
in the request.post()
选项。
服务器/域 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);
});
});
服务器/域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' });
}
});
}
});