2016-07-24 4 views
1

httpリクエストのすべてのクエリparamsを検証する必要がありますか、knexまたはbookshelfにはこのようなことを行う関数がありますか?ここでノードBookshelf.jsフィールドがテーブルに存在するかどうかをチェックする方法

は、私のコードの例です:

var validateModelQuery = function(Model , query) { 
for(var att in query) { 
    if(!Model.has(att)) //does not exist 
     return false; 
} 
return true; 
}; 

/

router.get('/customers', function(req, res, next) { 
if (!validateModelQuery(Customer , req.query)) { 
    res.status(400); 
Customer.where(req.query).fetchAll() 
...... 

すべてのルートに手動ですべてのフィールドを書くことは本当に悪いですので、あなたたちは、リクエストパラメータや体を検証することをお勧めしますどのようなコーディング。

+0

こんにちはJoão、私は本棚もknexもそのような機能を提供していないと思います。基礎となるデータベースが分かっている場合は、システムテーブルを照会して(おそらく結果をキャッシュする)ことができます。たとえば、MySql:http://stackoverflow.com/questions/4165195/mysql-query-to-get-column-names#4165253;ブックシェルフモデルの属性名に該当する場合は、列名をキャメルケースに変換します。 – bgerth

答えて

0

knex列がすでに存在するかどうかを確認するために使用することができるhasColumn機能を提供します。

関連する問題