Node.js api返回不正确的布尔值

Node.js api返回不正确的布尔值,node.js,api,boolean,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

我有一个简单的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 
} ]
有人能帮忙吗


提前谢谢

我们只需要找出它在哪一点断裂:

console.log(data[0].restricted_access)
此返回为false,因此您的书架对象是好的。让我们测试前端上任何类型的http侦听器是否存在问题:

res.send({restricted_access: false})
如果前端正确地检索到false,那么在序列化bookshelf对象时会发生此更改

最后,让我们试试:

console.log(data[0].toJSON())
调查它是真是假。如果为true,则搜索代码以找出重写serialize方法的位置:)


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

我们只需要找出它在哪一点断裂:

console.log(data[0].restricted_access)
此返回为false,因此您的书架对象是好的。让我们测试前端上任何类型的http侦听器是否存在问题:

res.send({restricted_access: false})
如果前端正确地检索到false,那么在序列化bookshelf对象时会发生此更改

最后,让我们试试:

console.log(data[0].toJSON())
调查它是真是假。如果为true,则搜索代码以找出重写serialize方法的位置:)


如果这也不能解决您的问题,那么我只能祝您好运

当您只执行
res.send({restricted\u access:false})
时,它是否也会神奇地改变呢?不,它实际上返回false…如果执行
console.log(数据[0].toJSON())
。如果您重写了serialize方法,这可能就是原因,当您只执行
res.send({restricted\u access:false})
时,它也会发生神奇的变化。不,这实际上返回false…执行
console.log(数据[0].toJSON())
时如何。如果重写了serialize方法,这可能是原因