首页 > 解决方案 > Hapi Joi 验证 - 验证单个字符串

问题描述

我想对作为请求标头的单个字符串进行一些基本验证X-Value。下面是我的尝试。

问题是即使没有X-Value标题,它也总是返回“成功”。

  const mySchema = Joi.string().min(2).max(30).required();
  const value = req.get('X-Value');
  const { myError } = mySchema.validate(value);
  if(myError){
    return res.status(401).json({ error: myError.details[0].message });
  }

  return res.send('success');

如何在不将其放入对象的情况下验证这一点?

标签: javascriptnode.jsexpressvalidationhapijs

解决方案


您正在myError从 validate 函数中解构。但是没有这样的事情。您需要error像这样破坏和使用:

const mySchema = Joi.string().min(2).max(30).required();
const value = req.get('X-Value');
const { error } = mySchema.validate(value);

if (error) {
  return res.status(401).json({ error: error.details[0].message });
}

return res.send("success");

推荐阅读