2016-05-04 8 views
1

私は、ブール値の場合に属性の1つがプロジェクト情報を返す単純なAPIを持っています。私のサーバ側はfalseブール値を返しているが、それは私のクライアント側に出力し、何らかの理由で、それはtrueです:Node.js不正なブール値を返すAPI

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

に幸運を唯一の希望することができ、またそれをしません'res.send({restricted_access:false})'を実行すると魔法のように変更されますか? – aec

+1

nah、実際にはfalseを返します... –

+0

どうすれば 'console.log(data [0] .toSSON())'になりますか? serializeメソッドをオーバーライドした場合、その原因が考えられます – aec

答えて

0

私達はちょうどそれが壊れ、その時点で見つける必要があります。

console.log(data[0].restricted_access) 

この戻り偽の本棚のオブジェクトが良いですので。あなたの本棚のオブジェクトをシリアル化しながら、この変更が起こった、

res.send({restricted_access: false}) 

フロントエンドが適切に偽取得した場合:フロントエンド上の任意の並べ替えのHTTPインターセプタが問題であるかどうかをテストします。最後の手段として

は、試すことができます:

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

は、それが虚偽または本当かどうかを調査します。それが本当であれば、あなたはSerializeメソッドを上書きした場所を見つけるためにあなたのコードを検索:)

それはどちらかあなたの問題を解決しなかった場合、私はあなた

関連する問題