我有以下 JSON 请求。我正在使用 bodyParser.json() 和express。我需要将这个请求数据用到/get的逻辑中。
{
"type": "A",
"longitude": "23",
"latitude": "40"
}
我正在尝试解析nodejs中的经度和纬度。下面是我的一段代码
app.use(bodyParser.json());
app.get('/api/second', function(request, response) {
var locationType = request.body.type;
var longitude = parseFloat(request.body.longitude);
var latitude = parseFloat(request.body.latitude);
当我执行控制台日志时,它向我显示 NAN,如果无法解析输入,则应该出现 NAN,但这里它们是数字。我在其他一些代码中尝试过 parseInt ,它对我来说效果很好。 我还尝试向这样的两个变量添加 10,但由于经度本身不起作用,我无法进一步进行。
var longHigh = longitude+parseFloat('10');
最佳答案
当我尝试它时它工作正常,所以我只能猜测您在 request.body
中缺少适当的值。检查 request.body.longitude
和 request.body.latitude
的值是否是您的预期值。
使用app.post(...)
而不是app.get(...)
。
示例如下:
index.js
const app = require("express")();
const morgan = require("morgan");
const bodyParser = require("body-parser");
app.use(morgan("dev"));
app.use(bodyParser.json());
// app.use(bodyParser.urlencoded({ extended: true })); // if using urlencoded format
app.post("/api/second", (req, res) => {
return res.send({
longitude: parseFloat(req.body.longitude),
latitude: parseFloat(req.body.latitude),
});
});
app.listen(3000, () => console.log("Listening on :3000"));
请求内容类型:application/json
{
"longitude": "30.2",
"latitude": "21.4"
}
我得到的回应
{
"longitude": 30.2,
"latitude": 21.4
}
关于javascript - parseFloat() 对于 JSON 输入返回 NAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109686/