javascript - api 节点 .js(通过 api 将数据发布到 mailchimp 服务器)
问题描述
运行程序时出现此错误
错误:
ReferenceError:选项未定义在 C:\Users\H00422000\desktop\newsletter-signup\app.js:39:33 在 Layer.handle [as handle_request] (C:\Users\H00422000\desktop\newsletter-signup\node_modules \express\lib\router\layer.js:95:5) 在 Route 的下一个 (C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\route.js:137:13)。 dispatch (C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (C:\Users\H00422000\desktop\newsletter -signup\node_modules\express\lib\router\layer.js:95:5) 在 C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\index.js:281:22 在功能.process_params (C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\index.js:335:12) 在下一个 (C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\index.js:275:10) 在 serveStatic (C:\Users\H00422000\desktop\newsletter-signup\node_modules\serve-static\index .js:75:16) 在 Layer.handle [as handle_request] (C:\Users\H00422000\desktop\newsletter-signup\node_modules\express\lib\router\layer.js:95:5)
代码:
const express=require("express");
const request=require("request");
const app=express();
const bodyParser=require("body-parser");
const https=require("https");
app.use(bodyParser.urlencoded({extended:true}));
app.use(express.static("public"));
app.get("/",function(req,res){
res.sendFile(__dirname +"/news.html");
});
app.post("/",function(req,res){
var f1=req.body.f1;
var l1=req.body.l1;
var e1=req.body.e1;
var data={
members: [
{
email_address:e1,
status:"subscribed",
merge_feilds:{
FNAME:f1,
LNAME:l1
}
}
]
};
const url='https://us10.api.mailchimp.com/3.0/lists/f0c448a295';
const options = {
method: "post",
auth:"mihr:229d66f728411db957eaae8894911467-us10"
}
const jsonData=JSON.stringify(data);
const request=https.request(url,option,function(response){
if (res.statusCode===200)
{res.send("suceeedede")}
else{res.send("errororrrororo")}
response.on("data",function(data){
console.log(JSON.parse(data));
});
});
request.write(jsonData);
request.end();
//229d66f728411db957eaae8894911467-us10
//f0c448a295
});
app.listen(3000,function(){
console.log("server is running on 3000 port")
});
解决方案
你犯了一个小错字:
const request=https.request(url,options,function(response){
if (res.statusCode===200)
{res.send("suceeedede")}
else{res.send("errororrrororo")}
response.on("data",function(data){
console.log(JSON.parse(data));
});
});
这应该工作;)