【发布时间】:2020-10-21 17:34:07
【问题描述】:
我是一个非常初学者,所以我希望我的问题不是那么愚蠢。 我想要做的是将经度和纬度从客户端 javascript 传递到服务器端的 node.js 中。我正在使用 fetch 和 express.js。
在我的html代码下面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
</head>
<body>
latitude: <span id="latitude"></span>°<br />
longitude: <span id="longitude"></span>°<br />
</p>
<button id="geolocate">geolocate</button>
<script src="main.js"></script>
</body>
</html>
这是我的 main.js 中的一个小示例:
document.getElementById('geolocate').addEventListener('click', event => {
if ('geolocation' in navigator) {
console.log('geolocation available');
navigator.geolocation.getCurrentPosition(position => {
var X = position.coords.latitude;
var Y = position.coords.longitude;
console.log(X, Y);
document.getElementById('latitude').textContent = X;
document.getElementById('longitude').textContent = Y;
const data = {X, Y}
const options = {
method: 'POST',
body: JSON.stringify(data),
headers: {
'content-type': 'application/json'
}
}
fetch('/api', options);
});
} else {
console.log('geolocation not available');
}
});
在这里你可以看到我的 node.js 代码:
const express = require('express');
const app = express();
app.listen(3000, () => console.log('listening at 3000'));
app.post('/api', (req, res) => {
console.log(req);
});
当我运行它时,我收到一个 404 错误。我不知道我在这里做错了什么。如有任何建议,我将不胜感激。
编辑:
这个应用程序正在我的 VPS 上运行。我还有一个带有 SSL 别名的域。为了运行 node.js,我使用 nodemon 作为进程。以下是日志:
user_name_with_sudo 11451 0.5 3.6 663672 38152 pts/0 Sl+ 11:05 0:00 node /bin/nodemon index.js $
如您所见,这是一个过程。
httpd service status - Oct 20 17:14:21 www.{my domain}.pl systemd[1]: Started The Apache HTTP Server.
如你所见,我正在开发 centOS7
【问题讨论】:
-
嗨,您能否发布更多关于您如何为前端应用程序提供服务的信息?此外,后端服务器的一些日志也有助于调试。
-
您是否也在为您的 NodeJs 应用程序提供客户端服务?如果没有,我建议看看这个网站expressjs.com/en/starter/static-files.html
-
你应该传递整个 URL 来获取
-
我进行了编辑以添加有关我的应用的一些详细信息。
标签: javascript node.js express post fetch