我是一个非常初学者,所以我希望我的问题不是那么愚蠢。
我想要做的是将经度和纬度从客户端 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 错误。我不知道我在这里做错了什么。我将不胜感激任何建议。
EDIT:
这个应用程序正在我的 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 上工作