2016-07-24 126 views
1

我需要验证http请求的所有查询参数,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功能。