【发布时间】:2021-09-04 18:23:17
【问题描述】:
我已经制作了一个从 api 获取数据的 Node.js 应用程序 'https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/findByPin?pincode=823003&date=21-06-2021 它在本地主机上工作得很好但是当我将它部署在heroku上时没有得到回应。我在 heroku 上使用免费套餐。 这是我的控制台 Heroku CLI logs
这是我的代码
require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const https = require('https');
const nodemailer = require('nodemailer');
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
function join(t, a, s) {
function format(m) {
let f = new Intl.DateTimeFormat('en', m);
return f.format(t);
}
return a.map(format).join(s);
}
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html");
})
app.post("/", (req, res)=>{
let options = [{day: '2-digit'}, {month: '2-digit'}, {year: 'numeric'}];
let today = join(new Date, options, '-');
let pin = req.body.pin;
const email = req.body.email;
let centers = "";
console.log(pin);
const cowin_endpoint = 'https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/findByPin?pincode=' + pin + '&date=' + today;
https.get(cowin_endpoint, (response)=>{
response.on('data', (data)=>{
const x = JSON.parse(data);
// console.log(x);
let i = x.sessions.length;
(x.sessions).forEach((sess)=>{
var centerDetails = "NAME:- " + sess.name + "\nADDRESS:- " + sess.address + "\nVACCINE:- " + sess.vaccine + "\nAGE:- " + sess.min_age_limit + "+\nDOSE1:- " + sess.available_capacity_dose1 + "\nDOSE2:- " + sess.available_capacity_dose2;
centers += centerDetails + "\n\n";
})
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.MAIL_ID,
pass: process.env.PASSWORD
}
});
var subject = "There are " + i + " vaccination centers near your area."
var mailOptions = {
from: process.env.MAIL_ID,
to: email,
subject: subject,
text: centers
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
// console.log(centers);
})
})
// res.sendFile(__dirname + "/success.html");
res.send("Successfully sent !")
})
app.listen(process.env.PORT || 3000, ()=>{
console.log("Server is up and running..");
})
【问题讨论】:
标签: node.js api express heroku https