parseFloat()返回NAN作为JSON输入
我有以下JSON请求。我正在使用bodyParser.json()和表达。我需要将此请求数据用于/ 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"));
请求Content-Type: application/json
{
"longitude": "30.2",
"latitude": "21.4"
}
我得到的答复
{
"longitude": 30.2,
"latitude": 21.4
}
parseFloat()返回NAN作为JSON输入
我有以下JSON请求。我正在使用bodyParser.json()和表达。我需要将此请求数据用于/ 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"));
请求Content-Type: application/json
{
"longitude": "30.2",
"latitude": "21.4"
}
我得到的答复
{
"longitude": 30.2,
"latitude": 21.4
}