Я получаю сообщение об ошибке, что запрос отклонен сервером MapQuest

Я пытаюсь использовать API-интерфейс mapquest в своем приложении nodeJS, но это дает мне эту ошибку:

OperationalError: Status is REQUEST_DENIED. You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account

Ниже представлена ​​модель:

const geocoder = require('../utils/geocoder');
BootcampSchema.pre('save', async function(next) {
  const loc = await geocoder.geocode(this.address);
  this.location = {
    type: 'Point',
    coordinates: [loc[0].longitude, loc[0].latitude],
    formattedAddress: loc[0].formattedAddress,
    street: loc[0].streetName,
    city: loc[0].city,
    state: loc[0].stateCode,
    zipcode: loc[0].zipcode,
    country: loc[0].countryCode
  };

  // Do not save address in DB
  this.address = undefined;
  next();
});

утилита геокодера:

const nodeGeoCoder = require('node-geocoder');

const options = {
  provider: process.env.GEOCODER_PROVIDER,
  httpAdapter: 'https',
  apiKey: process.env.GEOCODER_API_KEY,
  formatter: null
};

const geocoder = nodeGeoCoder(options);

module.exports = geocoder;

Ключи API определены в отдельном файле .env.

Как я могу решить эту проблему?


person Nick    schedule 02.10.2020    source источник
comment
Вы получаете сообщение об ошибке Google Maps. Вы уверены, что это MapQuest? Может быть, отредактировать ваш вопрос, чтобы уточнить?   -  person O. Jones    schedule 02.10.2020
comment
@ О.Джонс, это MapQuest. если я жестко закодирую, что в файле утилиты он работает, как и ожидалось, поэтому я думаю, что он не читает файл .env.   -  person Nick    schedule 02.10.2020


Ответы (4)


В сообщении об ошибке говорится, что API платформы Google Maps не является MapQuest. Если есть ошибка MapQuest, я могу помочь, но это не сообщение об ошибке MapQuest API. Вы можете заменить тег MapQuest тегом Google. Я надеюсь, что это поможет указать в правильном направлении.

person MQBrian    schedule 05.10.2020

Похоже, проблема связана с переменными Env. Была аналогичная проблема. Просто используйте значения в самом файле geocoder.js, как показано ниже. Это сработало для меня.

Я создал отдельный файл, а затем импортировал, и это тоже сработало. Итак, проблема с process.env

const options = { провайдер: 'mapquest', httpAdapter: 'http', apiKey: 'YOUR_API_KEY', formatter: null }

person vdwivedi    schedule 16.05.2021

Проблема заключается в том, что при настройке пакета dotenv в файле server.js или index.js вы должны вызывать путь переменных env перед маршрутами, поэтому в верхней части server.js вызовите непосредственно dotenv и настройте путь следующим образом:

require('dotenv').config({ path: './config/config.env' });

Извините за опоздание, но я надеюсь быть полезным.

person Christopher Ortiz Montero    schedule 18.06.2021

несколько предложений

  1. Проверить провайдера
  2. убедитесь, что вам требуются маршруты после загрузки файла .env.
person Bismark Obeng    schedule 12.01.2021