Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 默认值Nodejs_Node.js_Rest_Spring Boot_Express_Controller - Fatal编程技术网

Node.js 默认值Nodejs

Node.js 默认值Nodejs,node.js,rest,spring-boot,express,controller,Node.js,Rest,Spring Boot,Express,Controller,在SpringBoot中,在我的控制器方法中,我可以在我的控制器方法中检查并分配默认值,如下所示 而不是检查if(query){}。如果用户没有使用其中一个非必需的参数调用端点,我如何在express route(如Spring boot)中分配默认值 router.get('/products', ProductController.getAllProducts); //... static async getAllProducts(req, res, next) public respo

在SpringBoot中,在我的控制器方法中,我可以在我的控制器方法中检查并分配默认值,如下所示

而不是检查
if(query){}
。如果用户没有使用其中一个非必需的参数调用端点,我如何在express route(如Spring boot)中分配默认值

router.get('/products', ProductController.getAllProducts);

//...
static async getAllProducts(req, res, next)
public responseenty getAll(HttpServletRequest),
@RequestParam(name=“page”,required=false,defaultValue=“1”)@Min(1)整数页,
@RequestParam(name=“limit”,required=false,defaultValue=“20”)整数限制,
@RequestParam(name=“description_length”,required=false,defaultValue=“200”)

> p>您可以考虑使用模式验证库,例如查询模式验证/转换:

例如:


express
不提供此类功能。您可以为此使用JS语法,如
req.query.someKey | | default value'
,或添加另一个第三方库谢谢。我想获取页码参数。因此我使用了三元运算符。页码应为正数,如果未定义或字符串,或不是数字或字符串空值应采用默认值。
constpage=isNaN(req.query.page)| | req.query.page==undefined | | req.query.page==null | | Math.sign(Number(req.query.page))看起来过于复杂。我建议使用类似于joi或ajv的模式验证库。
// ...
const Joi = require('@hapi/joi');
const validator = require('express-joi-validation').createValidator({});

// ...

// If `page` is null, undefined, negative integer - set default value `0`
const querySchema = Joi.object({
  page: Joi.alternatives().try([
      Joi.number().integer().min(0),
      Joi.empty(Joi.any()).default(0),
  ])
});

// ...

router.get('/products', validator.query(querySchema), ProductController.getAllProducts);

// ...