解析和验证可选函数参数

Parsing and validating optional function arguments

本文关键字:函数 参数 验证      更新时间:2023-09-26

我正在寻找一种简单的方法来管理函数参数。这就是我要找的。

  • 指定类型或潜在类型
  • 分配默认值
  • 传入验证函数或(函数数组),如果false(或其中一个函数为false)则抛出

我遇到了ArgueJs,它有很多很棒的功能,但是它没有做到以下这些。

  • 允许参数可能是两种类型之一。
  • 允许您捕获在前面定义的其余参数之后传入的所有参数作为数组。

这个特定的库已经2年没有维护或更新了。所以有点过时了。

我只是想知道是否有任何主流的方法来管理参数,一般来说,总是有很多开销。理想情况下,您可以使用chriso/validator.js中的验证器函数进行验证。

我刚好碰到这个

https://github.com/okunishinishi/node-argx

这里有一个例子

var express = require("express")
var argx = require('argx')
var _ = require("underscore")
function example(/*Router, method, url, middleware*/) {
  var args = argx(arguments)
  var Router = args.shift('function') || express.Router
  var method = args.shift('string') || "get"
  var url = args.shift('string') || "/"
  var middleware = _.flatten([args.remain()])
  console.log(Router)
  console.log(method)
  console.log(url)
  console.log(middleware)
}

验证可以发生在此之上的其他层