node.js - 获取 http://localhost:5000/错误 404(未找到)
问题描述
我正在尝试使用 node.js 对来自 react.js 的带有 lat 和 long 的 datasciencetool 工具包进行 api 调用。每当用户输入地址时,我应该从 api 调用中获取数据,但是我只是在控制台中收到 404 错误。如果我用像这样的静态值替换 url http://www.datasciencetoolkit.org/coordinates2statistics/37.769456%2c-122.429128?statistics=population_density那么它可以工作。
数据.js
const fetch = require('node-fetch');
module.exports = (app) => {
app.post('/search-data', (req, res) => {
console.log(req);
let lat = req.body.param.lat;//before: req.query.lat it's wrong
let long = req.body.param.long;
console.log(lat);
const apiUrl = 'http://www.datasciencetoolkit.org/coordinates2statistics' + lat + '%2c' + long+'?statistics=population_density';
fetch(apiUrl).then(res=>res.json()).then(data=>{
console.log(data)
res.send({
data
});
})
.catch(err => {
res.redirect('/error');
});
})
}
home.js //反应
handleSelect = address => {
this.setState({
address,
});
console.log(this.state.address);
geocodeByAddress(address)
.then(res => getLatLng(res[0]))
.then(({ lat, lng }) => {
this.setState({
latitude: lat,
longitude: lng,
isGeocoding: false,
});
this.setState({ isLoaded: true });
})
.catch(error => {
this.setState({ isGeocoding: false });
console.log('error', error); // eslint-disable-line no-console
});
console.log(this.state.latitude);
console.log(this.state.longitude);
var param = {
lat: this.state.latitude,
long: this.state.longitude,
temp: 1,
};
axios
.post(`http://localhost:5000/search-data`, {
param,
})
.then(data => {
console.log(data);
});
};
纬度和经度返回正确的值,所以我不确定发生了什么。任何帮助是极大的赞赏!
解决方案
你忘记了坐标2统计中的/
const apiUrl = 'http://www.datasciencetoolkit.org/coordinates2statistics/' + lat + '%2c' + long+'?statistics=population_density
推荐阅读
- c++ - 在 XCode 项目 (Objective-C) 中使用静态 C++ 库 (*.a)
- controller - UniFi 控制器密码重置
- ios - 如何在 vue3(HTML5)中使用 iOS Safari 将视频保存到相册?
- choice - D-效率,algdesign 包 R
- java - Java:如何绕过 Visual Studio 字符串长度限制的字符串长度限制?
- blazor - 在处理事件时创建新的委托会增加什么好处?
- intellij-idea - 如何在intellij idea中更改java文件图标
- recursion - 尝试在 Ocaml 的列表列表中检查键值对
- ssl - openssl 命令 s_client 的握手错误
- android - 如何在api级别oreo以下的android中放弃音频焦点