Node.js api返回错误的布尔值

时间:2016-05-04 15:58:06

标签: node.js api boolean

我有一个简单的API,它返回项目信息,其中一个属性是布尔值。我的服务器端返回一个false布尔值,但出于某种原因,当它在我的客户端打印出来时,它是true

api.get('/api/project/:id', function(req, res) {

    knex('projects').where({
            project_code: req.params.id
        }).then(function(data) {
            console.log(data[0].restricted_access) //prints out FALSE
            res.send(data);
        }).catch(function(error) {
            console.log('error: ' + error);
            res.sendStatus(500);
        });
});

我的API调用:

$.ajax({
    type: "GET",
    url: "/api/project/" + project_code,
    success: function(data, status) {

        console.log(data[0].restricted_access) //prints out TRUE

    },
    error: function(a, b,c ) {
        console.log(a);
        console.log(b);
        console.log(c);
    }
});

示例项目对象:

[ { id: 14,
    project_code: 'abc123',
    restricted_access: false 
} ]

有人可以帮忙吗?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

我们只需要知道它在哪个方面打破了:

console.log(data[0].restricted_access)

这返回false,因此您的书架对象很好。让我们测试前端的任何类型的http拦截器是否都是问题:

res.send({restricted_access: false})

如果您的前端正确检索到错误,则在序列化书架对象时会发生此更改。

作为最后的手段,让我们试试:

console.log(data[0].toJSON())

调查它是假还是真。如果是,则搜索代码以找出覆盖序列化方法的位置:)

如果这也没有解决你的问题,那么我只能祝你好运