首页 文章

API密钥在localhost上工作,但不在Heroku上工作

提问于
浏览
0

我有一个应用程序,它使用Google Maps API和Meetup.com的API将事件加载到 Map 上 . 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"
  }

谢谢 .

1 回答

  • 0

    固定 . Heroku没有为API密钥分配值,因此在工作目录中,可以分配值

    heroku config add:MEETUP_API_KEY="[key value here]"
    

相关问题