0

我需要监听/mail路径上的 POST 请求,以便我可以通过 JS 发送电子邮件,而无需刷新页面。我正在考虑一个 express nodejs 服务器,它会在发出 POST 请求时发送电子邮件/mail

gulp serve任务当前使用 browserSync 来显示应用程序,但这仅显示站点的静态部分。如果我运行gulp serve然后我运行node mail.js包含快速服务器的脚本,我会收到一个EADDRINUSE错误,因为我认为快速服务器与 browserSync 冲突。

我能做些什么来克服这个错误?

4

1 回答 1

0

在您的 mail.js 文件中,将端口号从 3000 更改为其他任何值。像 4000 (这里的 app 是你的 express 实例)

 app.listen(3000, function( ....

到 app.listen(4000, function( ....

当您现在发布到 ?mail 时,这可能会导致 CORS 错误。

因此,您现在需要添加快速服务器代码,为来自 localhost:3000 应用程序的 POST 请求添加允许,方法如下:

app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "localhost:4000");
    res.header('Access-Control-Allow-Credentials', true);
    res.header('Access-Control-Allow-Methods', 'POST');
    res.header('Access-Control-Allow-Headers', '*');
    // intercept OPTIONS method
    if ('OPTIONS' == req.method) {
        res.sendStatus(200);
    } else {
        next();
    }
});
于 2015-09-20T11:22:08.283 回答