向我建议NodeJ中API的最佳验证包

时间:2019-03-26 06:18:40

标签: node.js laravel mongodb validation express

我以前在laravel中工作,而laravel的内置库对于处理各种错误非常有效。节点中的任何库是否也可以使用适当的代码结构来处理大多数错误- 我不喜欢下面的代码结构-

check('price').not().isEmpty().withMessage('must not empty').isInt().withMessage("Must be a Integer")

5 个答案:

答案 0 :(得分:1)

这是我在项目中一直使用的个人建议

  1. Joi NPM
  2. Ajv NPM

答案 1 :(得分:1)

我建议您使用nestjs,这会使服务器更具可读性和灵活性,您可以使用内置的验证

答案 2 :(得分:1)

我认为我已经多次使用期望npm库,并且发现它更易于使用。有许多内置函数使您的工作变得容易。 https://jestjs.io/docs/en/expect.html https://www.npmjs.com/package/expect

第二,如果您正在将它用于数据库操作,则mongoose将提供您想要在插入数据之前使用的各种验证。在下面查看: https://mongoosejs.com/docs/validation.html

答案 3 :(得分:0)

最适合您的解决方案是“摇摇欲坠”。如果使用swagger编写API,则根本不需要编写任何验证逻辑。大张旗鼓,您可以在配置文件中定义验证。 Swagger将自动检查传入的请求,如果不是有效请求,则它将拒绝该请求并向客户端发送错误的请求响应。这是最好的文章-https://scotch.io/tutorials/speed-up-your-restful-api-development-in-node-js-with-swagger

答案 4 :(得分:0)

我喜欢指示性-https://indicative.adonisjs.com/
它使用声明性验证,因此避免了示例中的链接。

const { validateAll } = require('indicative');
const validations = {
    title: 'required|min:1|max:100'
}
validateAll(req.body, validations)
            .then(() => {
                // valid
            })
            .catch(errors => {
                res.json(errors);
            })