微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 nodejs 中使用 mailchimp 营销 api v3 响应代码呈现成功/失败页面

如何解决在 nodejs 中使用 mailchimp 营销 api v3 响应代码呈现成功/失败页面

如果我的联系人成功添加到 Mailchimp 列表中,我想呈现一个 succes.html 文件,否则呈现一个 failure.html 文件。我使用的是 Mailchimp 营销 API 版本:3。

我已经尝试过这段代码,但无法渲染文件

async function run() {
        try{
            const response = await mailchimp.lists.addListMember(listId,{
                email_address: subscribingUser.email,status: "subscribed",merge_fields: {
                    FNAME: subscribingUser.firstName,LNAME: subscribingUser.lastName
                }
            });
        } catch (e){
            if (e.response.statusCode  !== 200){
                console.log(e.response.statusCode);
                res.redirect(__dirname + "/failure.html");
            }else{
                console.log(e.response.statusCode);
                console.log(`Successfully added contact as an audience member. The contact's id is ${response.id}.`);
                res.redirect(__dirname + "/success.html");
            }
        }

    }
    run();

我已尝试搜索此问题,但我发现的所有结果都是使用旧版本的 Mailchimp 并使用 HTTPS req/res 而不是使用 async function run()。但是我想用mailchimp的async function run()解决这个问题。

解决方法

所以我发现我正在以错误的方式进行 try-catch。稍微编辑一下代码后,它现在工作正常。工作代码如下。

  async function run() {
        try{
            const response = await mailchimp.lists.addListMember(listId,{
                email_address: subscribingUser.email,status: "subscribed",merge_fields: {
                    FNAME: subscribingUser.firstName,LNAME: subscribingUser.lastName
                }
            });
            console.log(`Successfully added contact as an audience member. The contact's id is ${response.id}.`);
            res.sendFile(__dirname + "/success.html");
        } catch (e){
            console.log(e.status);
            res.sendFile(__dirname + "/failure.html");
        }

    }
run();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。