表单数据类型错误:无法使用 Mailgun 读取未定义的属性“名称”

问题描述 投票:0回答:1

我正在尝试在我的节点应用程序中使用mailgun,并且我已经遵循了他们的文档并像这样进行了设置

const formData = require("form-data");
const Mailgun = require("mailgun.js");
const mailgun = new Mailgun(formData);
const mg = mailgun.client({username: "api", key: "my-api-key"})

const data = {
    from: 'donotreply <[email protected]>',
    to: '[email protected]',
    subject: 'Test Subject',
    text: `Test Body`,
    attachment: [{
            filename: `a_file.pdf`,
            data: buffer
        }]
}

mg.messages.create("mywebsite.com", data)
.then((res) => {
    console.log(res);
})
.catch((err) => {
    console.log(err);
})

当我在本地测试我的应用程序时,它运行得很好,但是当我在heroku 服务器上测试它时,我收到此错误

2023-03-26T19:23:46.786638+00:00 app[web.1]: /app/node_modules/form-data/lib/form_data.js:250
2023-03-26T19:23:46.786665+00:00 app[web.1]:   if (!contentType && value.name) {
2023-03-26T19:23:46.786665+00:00 app[web.1]:                             ^
2023-03-26T19:23:46.786666+00:00 app[web.1]: 
2023-03-26T19:23:46.786666+00:00 app[web.1]: TypeError: Cannot read property 'name' of undefined
2023-03-26T19:23:46.786667+00:00 app[web.1]:     at FormData._getContentType (/app/node_modules/form-data/lib/form_data.js:250:29)
2023-03-26T19:23:46.786667+00:00 app[web.1]:     at FormData._multiPartHeader (/app/node_modules/form-data/lib/form_data.js:179:26)
2023-03-26T19:23:46.786668+00:00 app[web.1]:     at FormData.append (/app/node_modules/form-data/lib/form_data.js:71:21)
2023-03-26T19:23:46.786668+00:00 app[web.1]:     at i (/app/node_modules/mailgun.js/mailgun.node.js:2:33205)
2023-03-26T19:23:46.786668+00:00 app[web.1]:     at /app/node_modules/mailgun.js/mailgun.node.js:2:33285
2023-03-26T19:23:46.786668+00:00 app[web.1]:     at Array.forEach (<anonymous>)
2023-03-26T19:23:46.786669+00:00 app[web.1]:     at e.addFilesToFD (/app/node_modules/mailgun.js/mailgun.node.js:2:33264)
2023-03-26T19:23:46.786669+00:00 app[web.1]:     at /app/node_modules/mailgun.js/mailgun.node.js:2:32363
2023-03-26T19:23:46.786669+00:00 app[web.1]:     at Array.reduce (<anonymous>)
2023-03-26T19:23:46.786670+00:00 app[web.1]:     at e.createFormData (/app/node_modules/mailgun.js/mailgun.node.js:2:32271)

我尝试过做多种事情,例如确保将服务器节点版本设置为本地版本(无论我认为哈哈,我都应该这样做)和npm安装表单数据(它在本地没有这样做的情况下工作,所以我认为它包含在Node 但我看到有一个可用的包,所以我无论如何都安装了它)。

如有任何建议,我们将不胜感激,谢谢!

node.js heroku form-data mailgun
1个回答
0
投票

我在 nodemailer-mailgun-transport 节点模块上遇到了同样的问题。 我认为这是 mailgun.js 节点模块版本问题。 这个问题你解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.