我有一个应用程序,它使用Google Maps API和Meetup.com的API将事件加载到地图上。 Meetup的我的API密钥存储在我的.zshrc文件的底部并导出,它在localhost上运行正常。但是当我尝试在Heroku上使用该应用程序时,API会返回500.
这是我的meetup.js控制器:
var request = require('request-promise');
function getEvents(req, res) {
request.get({
url: "https://api.meetup.com/2/open_events",
qs: {
key: process.env.MEETUP_API_KEY,
lat: req.query.lat,
lon: req.query.lng,
category: req.query.category,
radius: req.query.radius || 1,
sign: true
},
json: true
})
.then(function(response) {
res.status(200).json(response.results);
})
.catch(function(err) {
console.log(err);
res.status(500).json(err);
})
}
function getCategories(req, res) {
request.get({
url: "https://api.meetup.com/2/categories",
qs: {
key: process.env.MEETUP_API_KEY,
sign: true
},
json: true
})
.then(function(response) {
res.status(200).json(response.results);
})
.catch(function(err) {
console.log(err);
res.status(500).json(err);
})
}
module.exports = {
getEvents: getEvents,
getCategories: getCategories
}
我在package.json中的依赖项:
"dependencies": {
"bcrypt": "^0.8.7",
"bluebird": "^3.4.6",
"body-parser": "^1.15.2",
"cors": "^2.8.1",
"express": "^4.14.0",
"jsonwebtoken": "^7.1.9",
"moment": "^2.15.0",
"mongoose": "^4.6.0",
"mongoose-beautiful-unique-validation": "^5.0.1",
"morgan": "^1.7.0",
"request": "^2.74.0",
"request-promise": "^4.1.1"
}
感谢。
答案 0 :(得分:0)
固定。 Heroku没有为API密钥分配值,因此在工作目录中,可以使用
指定值heroku config add:MEETUP_API_KEY="[key value here]"