在我的云功能中:
const app = express();
app.use(multer().array());
app.post("/", (req, res) => {
console.log("hit", req.body.from);
console.log("hit", req.body.from);
return res.sendStatus(200);
});
const emailInboundWebhook = functions.https.onRequest(app);
module.exports = {
emailInboundWebhook
}
我在日志中得到这个:
i functions: Beginning execution of "emailInboundWebhook"
> hit undefined
> hit undefined
i functions: Finished "emailInboundWebhook" in ~1s
但是,当同一个端点用作快速应用程序(云功能之外)时:
const express = require("express");
const app = express();
const multer = require('multer');
app.get("/", async (req, res) => {
res.status(200).json({foo: "Bar"});
})
app.use(multer().array());
app.post("/webhook", async (req, res) => {
console.log("hit",req.body.to);
console.log("hit",req.body.from);
res.sendStatus(200);
});
app.listen(80, () => {
console.log("App listening on 80");
})
给出了这个:
hit a@some-email-inbound.some.url
hit Rahul Priyadarsi <myemailid@gmail.com>
这两个结果是针对发送的相同电子邮件,这些函数作为 sendgrid webhook 触发,它发送multipart/form-dataPOST 请求,其中包含发送到的电子邮件的详细a@some-email-inbound.some.url信息myemailid@gmail.com
我不知道为什么这两个结果不同(我正在通过 ngrok 测试它们,并且由于控制台日志行运行,显然该函数被命中)。