2016-07-24 4 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() 
...... 

Что вы, ребята предлагают подтвердить запрос Params или тело, потому что писать все поля вручную на каждом маршруте действительно плохо кодирование.

+0

Привет, Жоао, я думаю, что ни книжная полка, ни нокаут не обеспечивают такую ​​функцию. Если вы знаете базовую базу данных, вы можете запросить некоторую системную таблицу (и, возможно, кэшировать результаты). Например, MySql: http://stackoverflow.com/questions/4165195/mysql-query-to-get-column-names#4165253; затем переведите имя столбца в случай верблюда, если это применимо к вашим именам атрибутов модели Bookshelf. – bgerth

ответ

0

knex обеспечивают hasColumn функцию, которая может быть использована для проверки, если столбец уже существует.

Смежные вопросы