【发布时间】:2021-06-19 04:16:32
【问题描述】:
我正在尝试在我的 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 文件中定义。
我该如何解决这个问题?
【问题讨论】:
-
您遇到了 Google 地图错误。你确定这是 MapQuest 吗?也许edit你的问题要澄清?
-
@O.Jones 是 MapQuest。如果我在实用程序文件上对其进行硬编码,它会按预期工作,所以我认为它没有读取 .env 文件。
标签: node.js express mongoose dotenv mapquest