簡體   English   中英

如何使用Angular 2正確發送和接收Express API響應

[英]How to Properly Send and Receive Express API Response with Angular 2

這是我從Angular 2應用程序發出的Express API調用中收到響應的方式。 在我的組件中:

this.emailService.sendEmail(this.name, this.email, this.message)
                     .subscribe(
                       (res) => {
                         console.log("Success");
                         this.success = true;
                       },
                       (err) => {
                         console.log("Failure");
                         this.success = false;
                       }
                     );

在我的電子郵件服務中,sendEmail()函數:

return this.http.post('/api/sendemail', data)
                    .map(res => res.json());

通過我的Express API,我正在使用emailjs節點模塊發送電子郵件並發送響應:

router.post('/sendemail/', (req, res) => {
...
server.send({
    text: "Sent from " + req.body.name + " message: " + req.body.message + " reply to: " + req.body.email,
    from: "email@gmail.com",
    to:   "email@gmail.com",
    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(200).send("Email sent successfully.");

至:

res.status(200).send({message: "Email sent successfully."});

要么

res.status(200).json({message: "Email sent successfully."});

要么

res.status(200);

嘗試這樣的事情。

res.status(200).json({
        message: 'Email sent successfully.'
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM