最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

parseFloat()返回NAN作为JSON输入

IT培训 admin 6浏览 0评论

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.longituderequest.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.longituderequest.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
}
发布评论

评论列表 (0)

  1. 暂无评论