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()
......
すべてのルートに手動ですべてのフィールドを書くことは本当に悪いですので、あなたたちは、リクエストパラメータや体を検証することをお勧めしますどのようなコーディング。
こんにちはJoão、私は本棚もknexもそのような機能を提供していないと思います。基礎となるデータベースが分かっている場合は、システムテーブルを照会して(おそらく結果をキャッシュする)ことができます。たとえば、MySql:http://stackoverflow.com/questions/4165195/mysql-query-to-get-column-names#4165253;ブックシェルフモデルの属性名に該当する場合は、列名をキャメルケースに変換します。 – bgerth