Next.js API 路由适用于本地开发,但不适用于生产(MailChimp API)

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

我正在开发一个 next.js 项目,当在本地运行我的项目时,我能够将电子邮件插入表单并通过他们的 API 成功将其发布到 MailChimp。在生产中,相同的代码不起作用,但我已经确认生产具有:

  • 访问并更正 MailChimp API 密钥下一个 API 路线
  • Api路线
    {URL}/subscribe
    返回200

问题似乎是在调用 API 路由之后发生的后续 API 调用。我迷路了,很想听听你的见解。

pages/api/subscribe.js

const axios = require('axios');

const LIST_ID = 'b29d6f1e61'; // MailChimp Audience
const key = `Basic ${Buffer.from(`apikey:${process.env.MAILCHIMP_API_KEY}`).toString('base64')}`;


const subscribe = ( email ) => {
axios({
    method: 'POST',
    url: `https://us18.api.mailchimp.com/3.0/lists/${LIST_ID}/members/`,
    headers: {Authorization: key},
    data: { email_address: `${email}`, status: "subscribed" } })
    .then(response => {
        console.log(response);
        return response
    }).then(data => {
        console.log('Data Rec\'d:', data);
    }).catch(error => {
        console.log('Subscribe error:', error);
        // reject('Something went wrong')
    });

};

module.exports = async (req, res) => {
    if (req.method === 'POST') {
        res.setHeader('Content-Type', 'application/json');
        res.statusCode = 200;
        res.send(req);
        await subscribe(req.body);
        res.end()
    } else {
        res.setHeader('Content-Type', 'application/json');
        res.statusCode = 200;
        res.end(JSON.stringify({name: 'GET received'}))
    }
};
reactjs api mailchimp next.js
1个回答
0
投票

我遇到了类似的问题,我所要做的就是尝试生产中的网址,例如 {URL}/subscribe,然后确保你得到这个

{ “错误”:“不允许使用方法 GET” }

如果你没有得到这一点,请正确检查你在 git 上的提交,看看该路由是否被推送到 git 并且它没有被忽略。如果文件被忽略,只需正确添加并重新部署即可。

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