У меня есть простая 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>