NodeJS 我收到请求被服务器拒绝的错误MapQuest

8iwquhpp  于 2022-11-22  发布在  Node.js
关注(0)|答案(5)|浏览(157)

我试图在我的nodeJS应用程序中使用mapquest api,但它给我这个错误:

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文件中定义
如何解决这个问题?

hjzp0vay

hjzp0vay1#

错误消息说,“谷歌Map平台API”,这不是MapQuest。如果有MapQuest错误,我可以帮助,但这不是MapQuest API错误消息。你可能想把MapQuest标签换成谷歌标签。我希望这有助于指向正确的方向。

edqdpe6u

edqdpe6u2#

看起来这个问题是关于Env变量的。有一个类似的问题。只要使用geocoder.js本身的值,就像下面一样。它对我很有效。
我创建了一个单独的文件,然后导入,它的工作以及。所以问题是与进程。env
常量选项= {提供程序:'mapquest',http适配器:'http',apiKey:'YOUR_API_KEY',格式化程序:空值}

bfnvny8b

bfnvny8b3#

问题是在配置dotenv包时,在server.js或index.js文件中你必须在routes之前调用env变量的路径,所以在server.js的顶部直接调用dotenv并配置路径如下:

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

很抱歉来晚了,但我希望能帮上忙。

tzxcd3kk

tzxcd3kk4#

您需要在sever.js文件中的路由之前调用dotenv。

请遵循以下内容:

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

const bootcamps = require('./routes/bootcamps');
mepcadol

mepcadol5#

几点建议
1.检查提供程序
1.确保在.env文件加载后需要路由干杯

相关问题