在Express.js中POST数据JSONvalidation

我正在使用Node.js和Express.js编写一个应用程序。 该应用程序有一个(小)REST API,然后是一个Web前端。 我使用MongoDb。

对于API,我倾向于POST数据到某个端点,然后进行处理或者其他操作,并将其转储到数据库中。 但是,我有一些数据库架构,我想强制执行。 什么是我的选项/最佳做法,强制执行我的POST数据的特定结构,所以我知道某些领域是目前和特定types。

如果这可以在中间件级别完成,那将是很好的,但这不是必需的。 人们通常为validation/模式执行做什么?

节点validation器是你在找什么。 你可以使用它作为一个独立的模块

 var check = require('validator').check; //Validate check('test@email.com').len(6, 64).isEmail(); //Methods are chainable check('abc').isInt(); //Throws 'Invalid integer' 

或者,您可以使用构build在节点validation程序之上的express -validator作为中间件。

以下是各种JSON模式validation器的最新基准 。

另外,为了获得最佳实践,您可能需要查看JSON模式 ,这个模式试图规定一个如何定义JSON对象的标准方法。