首页 > 解决方案 > 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")
});

标签: javascriptnode.js

解决方案


你犯了一个小错字:

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));
});


});

这应该工作;)


推荐阅读