0

我正在使用 sendinblue api 创建将在报价页面中看到的联系人(电子邮件),但是在我收到成功警报后没有任何反应,我尝试了很多事情,但我不断收到错误。

报价页面未呈现,我什至尝试了 res.redirect("offer")但仍然没有任何反应,而且我不能使用此方法,因为我必须将电子邮件参数传递给报价页面。

这是我的 index.js

const bodyparser = require('body-parser') 
const SibApiV3Sdk = require('sib-api-v3-sdk');
const path = require('path') 
const app = express() 
const env = require('dotenv').config({path: './.env'});
const port = process.env.PORT || 3000 
app.use(bodyparser.urlencoded({extended:false})) 
app.use(bodyparser.json()) 
// View Engine Setup 
app.set('views', path.join(__dirname, 'views')) 
app.set('view engine', 'ejs') 

app.get('/',(req,res)=>{
  res.sendFile(__dirname + "/email.html");
})
app.listen(port, function(error){ 
  if(error) throw error 
  console.log("Server created Successfully") 
})


// send email endpoint
app.post("/sendemail", (req, res, next) => {
    const email = req.query.email; 
    console.log(email); 
    let apikey = process.env.SIB_API_KEY
    // auth + setup
    let defaultClient = SibApiV3Sdk.ApiClient.instance; 
    let apiKey = defaultClient.authentications['api-key']; 
    apiKey.apiKey = apikey; 

    // create contact 
    let apiInstance = new SibApiV3Sdk.ContactsApi(); 
    let createContact = new SibApiV3Sdk.CreateContact(); 
    createContact.email = email; 
    createContact.listIds = [2]; 

    apiInstance.createContact(createContact).then((data) => {
      // success 
      res.render('offer',{email:email,  
        publishablekey: Publishable_Key 
        })
  }, function (error) {
      // error
      console.log(error)
      res.status(500); 
      res.send("failure");
  })
})

app.get('/offer', (req, res) => {
  res.render('offer')
});

这是在我的 email.html 页面中

<script>
document.getElementById("submit").onclick = () => {
                // console.log(email.value)
                fetch("/sendemail?email=" + email.value, {
                    method: "POST"
                }).then((res) => {
                    // success
                    alert("success")
                }).catch((err) => {
                    // error 
                    alert(err)
                })}
    </script>
4

0 回答 0