我创建了更新用户数据的选项,但是我遇到了问题。用户未输入所有更改数据。仅一个,例如名称。我想出了下面的解决方案,然后当某些内容为空时将其发送为空
const response = yield call(request, requestURL, {
method: 'PATCH',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
name: name && name,
surname: surname && surname,
password: password && password,
email: email && email,
currencyId: currencyId && currencyId,
}),
});
例如结果:
currencyId: 2
email: null
name: null
password: null
surname: null
...但是我要求的有效证明是:
usersRouter
.route("/")
.patch(
[
body("name")
.optional()
.isString()
.isAlpha()
.isLength({ min: 1 }),
body("surname")
.optional()
.isString()
.isAlpha()
.isLength({ min: 1 }),
body("email")
.optional()
.isEmail(),
body("password")
.optional()
.isLength({ min: 1 }),
body("currencyId")
.optional()
.isNumeric()
],
所以我有一个问题,因为我在请求中始终发送空值,并且出现此错误:
code: 400
message: "name: Invalid value,name: Invalid value,name: Invalid value,surname: Invalid value,surname: Invalid value,surname: Invalid value,email: Invalid value,password: Invalid value"
success: false
我该如何解决这个问题,最好是在前端?
好的,我解决了这个问题:.optional({nullable:true})