我正在使用 Node.js 和 Express.js 编写应用程序。该应用程序有一个(小)REST API,然后是一个 Web 前端。我使用 MongoDb。
对于 API,我倾向于POST
将数据发送到某个端点,然后进行处理或其他操作,然后将其转储到数据库中。但是,我有一些我想强制执行的数据库模式。对我的POST
数据强制执行特定结构的选项/最佳实践是什么,以便我知道某些字段存在且属于特定类型。
如果这可以在中间件级别完成,那就太好了,但这不是必需的。人们通常为验证/模式执行做什么?
我正在使用 Node.js 和 Express.js 编写应用程序。该应用程序有一个(小)REST API,然后是一个 Web 前端。我使用 MongoDb。
对于 API,我倾向于POST
将数据发送到某个端点,然后进行处理或其他操作,然后将其转储到数据库中。但是,我有一些我想强制执行的数据库模式。对我的POST
数据强制执行特定结构的选项/最佳实践是什么,以便我知道某些字段存在且属于特定类型。
如果这可以在中间件级别完成,那就太好了,但这不是必需的。人们通常为验证/模式执行做什么?
node-validator是您正在寻找的。您可以像这样将其用作独立模块
var check = require('validator').check;
//Validate
check('test@email.com').len(6, 64).isEmail(); //Methods are chainable
check('abc').isInt(); //Throws 'Invalid integer'
或者您可以使用构建在 node-validator 之上的express- validator 作为中间件。
这是各种 JSON 模式验证器的最新基准。
此外,对于最佳实践,您可能需要查看JSON-schema,它试图制定一种定义 JSON 对象应如何定义的标准方法。