2013-10-01 4 views
5

Я ищу модуль для проверки запросов POST json в моем приложении Express.js.express.js - best POST json schema validator

Какой модуль схемы json вы используете в своих приложениях node.js?

Я предполагаю, что узел-валидатор (https://github.com/chriso/node-validator) здесь не вариант, поскольку он работает только со строками.

ответ

6

Я сделал это - если вы все еще заинтересованы: https://npmjs.org/package/isvalid

+0

эй, классный материал +1 – Kosmetika

+0

Попробуйте http://indicative.adonisjs.com/, имеет дружескую дружественную api для проверки схемы –

4

Я сделал Paperwork, что является очень простым решением для проверки JSON. Вы можете сделать что-то вроде:

app.post('/my/route', paperwork({ 
    username: /[a-z0-9]+/, 
    password: String, 
    age: Number, 
    interests: [String], 
    jobs: [{ 
    company: String, 
    role: String 
    }, 
}, function (req, res) { 
    // ... 
}); 

Он будет проверять:

{ 
    username: 'brucewayne', 
    password: 'iambatman', 
    age: 36, 
    interests: ['Climbing', 'CQC', 'Cosplay'], 
    jobs: [{ 
    company: 'Wayne Inc.', 
    role: 'CEO' 
    }] 
} 

Или же тихо отвечает на 400 ошибку с информацией о том, что случилось. Проверьте документ, чтобы сделать более продвинутые способы использования.

+0

спасибо, это выглядит очень красиво! – Kosmetika

9

Привет Я недавно написал express-jsonschema. Основные отличия от других валидаторов:

  1. Для проверки используется стандарт json schemas. Если у вас есть другие языки на стороне сервера, вы, вероятно, использовали их .
  2. Это не влияет на то, как ваше приложение реагирует на недопустимые данные . Это дает вам возможность подключиться и ответить, однако, вы хотите. По моему опыту это то, что хорошо для управления .

express-schema-validator, express-validate и Paperwork все замечательно. Каждый из них имеет свой собственный уникальный синтаксис для объявления схем, а также контролирует, как ваше приложение реагирует на недопустимые данные (то есть код состояния и структуру данных).

Удачи вам!

+0

. Взгляните на рациональное решение по дизайну решения: (1) используя [json-schema] (http://json-schema.org), выделенный язык схемы, который поможет стандартизировать, как мы разрабатываем наш API, и (2) избегать захвата элемента управления из приложения (разделение проблем). – Younes

+0

То же самое здесь. Upvote для инверсии управления: D. ИМО это лучшее решение. – Harindaka

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