在 Joi 的查询字符串中接受“#”

问题描述

我有一个接受用户名作为查询字符串的端点,但这个用户名的开头可能有 #,所以在 Joi 中我得到了这个

{
    "code": 1021,"message": "Request data model validation has Failed","id": "276ba99a-2abc-4505-b66a-dad2a8ger5","explanation": [
        "`username` is not allowed to be empty"
    ]
}

如何使用 Joi 使我的查询字符串在开头接受 #?

解决方法

在将参数添加到 URL 之前,您必须对其进行编码。

const url = 'https://example.com?username=#allia';
const response = await fetch(encodeURIComponent(url));

或者你可以用#替换%23