Mailchimp электронная почта не проходит через Node.js - PullRequest
0 голосов
/ 28 октября 2018

У меня есть простая HTML-форма с адресом «name» и «email», и я использую mailchimps API.Я получаю сообщение об успехе по моему коду на своей веб-странице после того, как я ввожу имя / адрес электронной почты и отправляю сообщение, однако в терминале Mailchimp запрашивает:

{ type: 'http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/',
  title: 'Invalid Resource',
  status: 400,
  detail: 'Please provide a valid email address.',
  instance: '65bae057-c3e6-46fc-b5f7-c287e9208d78' }

Я использую Superagent для своего HTTP-запроса, ноЯ считаю, что мой код может быть настроен неправильно.В прошлом уроке я использовал веб-пакет, и у меня возникли некоторые трудности с его использованием (хотя я успешно справился с этим), поэтому на этот раз я попробовал суперагент.Я также использовал Почтальон.Мой код выглядит хорошо, я думаю, что я просто пропустил важную часть здесь?Если кто-нибудь может дать мне какое-либо направление, я буду очень признателен!:)

package.json

{
  "name": "workspace",
  "version": "1.0.0",
  "description": "Teamtrics Wanzeru Draft",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.18.3",
    "express": "^4.16.4",
    "jquery": "^3.3.1",
    "request": "^2.88.0",
    "superagent": "^4.0.0-beta.5"
  }
}

app.js

const express = require('express');
const bodyParser = require('body-parser');
const request = require('superagent');
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// //middleware, static files HTML where form is stored
app.use(express.static(__dirname + "/"));

//connecting cloud i9 host
app.listen(process.env.PORT, process.env.IP, function() {
    console.log("The Server Has Started!");
});

app.post('/', function(req, res) {
    addEmailToMailchimp(req.body.email);
    res.end('SUCCESS!');
});

function addEmailToMailchimp(email) {
    var request = require("request");

    var options = {
        method: 'POST',
        url: 'https://xxxxxx.api.mailchimp.com/3.0/lists/xxxxxxxx/members',
        headers: {
            'postman-token': 'xxxxxxxx-xxxxxx-xxxx-xxx-xxxxx',
            'cache-control': 'no-cache',
            'content-type': 'application/json',
            authorization: 'Basic xxxxxxxxxx='
        },
        body: { email_address: 'email', status: 'subscribed' },
        json: true
    };

    request(options, function(error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
    });
}

html form

 <form action = "/" method="post">
                                <div class="form-group">
                                    <input type="name" class="form-control" id="exampleInputName" aria-describedby="emailHelp" placeholder="Name">
                                </div>
                                <div class="form-group">
                                    <input type="email" class="form-control" id="exampleInputEmail" placeholder="Email">
                                </div>
                                <button type="submit" class="btn" style="background-color: #D34ED5; color:#fff; margin-bottom: 70px; width: 190px;">Sign up</button>


                       </form>
...