我正在使用 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>