AWS Lambda上的nodejs中的语言查询string参数parsing

请考虑以下在AWS Lambda上运行的nodeJS函数,它为http请求提供服务:

module.exports.fetchLogLines = (event, context, callback) => { // Parse the 'token' param string argument let token = null; if ((event.queryStringParameters !== null) && ('nextForwardToken' in event.queryStringParameters)) { token = event.queryStringParameters.nextForwardToken; } // Parse the 'tailf' param string argument let startFromHead = true; if ((event.queryStringParameters !== null) && ('tailf' in event.queryStringParameters) && (event.queryStringParameters.tailf === 'true')) { startFromHead = false; } // Parse the logStreamName param string argument const logStreamName = event.queryStringParameters.logStreamName; ... 

这似乎是parsing查询string参数的一种麻烦的方法:

  • 7 LOC进行validation和parsing
  • 莫明显的方式来指定哪些参数是必需的,哪些是可选的
  • 没有明确的方式来定义预期的types(整数,数字等)并且转换值
  • 没有真正的值断言 – 例如, tailf检查=== 'true' ,忽略Trueyes1on和其他文本在API约定中是true

应该有一个图书馆这样做。

有没有一种惯用的方法来parsingnodeJS中的查询string参数,定义它们的types,并指定哪些参数是必需的,哪些是可选的?