ここで、私はAngular 2アプリケーションから作成しているExpress API呼び出しからの応答を受信しています。私エクスプレスAPIから角度2のExpress API応答を正しく送受信する方法
return this.http.post('/api/sendemail', data)
.map(res => res.json());
、私は電子メールを送信してemailjsノードモジュールとそのような応答を送信しています:
私の電子メールサービスのsendEmail()関数でthis.emailService.sendEmail(this.name, this.email, this.message)
.subscribe(
(res) => {
console.log("Success");
this.success = true;
},
(err) => {
console.log("Failure");
this.success = false;
}
);
:私のコンポーネントで
router.post('/sendemail/', (req, res) => {
...
server.send({
text: "Sent from " + req.body.name + " message: " + req.body.message + " reply to: " + req.body.email,
from: "[email protected]",
to: "[email protected]",
subject: "test"
}, function(err, message) {
if (err) {
console.log(err);
res.status(500).send("Email failed to send.");
} else if (message) {
console.log(message);
res.status(200).send("Email sent successfully.");
}
});
});
電子メールは毎回正常に送信され、200のステータスコードが返されています(私のコンソールとHerokuコンソールで応答が表示されます)が、コンソールには「失敗」が記録されますガードレス。回答をアプリケーションに適切に送り返していますか?
'res.status(500).send(" Email failed to send。 ")の代わりに' res.sendStatus(200) 'を試すことができますか?あなたの使い方は廃止されているようです:https://expressjs.com/en/4x/api.html#res.sendStatus – echonax
私は以前これをやってみましたが、同じ問題がありました。 – Wadoo9