Bcrypt错误:非法参数:未定义,通过前端发送post请求时的数字



我对nodejs相当陌生,我现在正在努力解决这个加密错误。当我使用postman发送post请求(原始数据)时,它没有任何错误,但是当我通过form-data或从前端发送请求时,它会抛出一个错误:

nextTick(callback.bind(this, Error("Illegal arguments: "+(typeof s)+', '+(typeof salt))));
^
Error: Illegal arguments: undefined, number
下面是我的代码:
//backend authcontroller
export const signUpLogic = async (req: Request, res: Response) => {
const { username, email, password } = req.body;
try {
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(password, salt);
//
const result = userSchema.safeParse({
username,
email,
password: String(hashedPassword),
});
//
res.status(200).json(result);
}cath(err){
//some error handling
}

in my frontend:

<form action="http://localhost:3000/sign-up" method="post">
<!-- some input fields here-->
</form>

如何修复这个错误?

ps:关于表单数据错误,我试图使用body-parser作为中间件,但输出仍然相同。

正文解析器中间件必须这样配置:

app.use(bodyParser.urlencoded());

如果您使用的是最新版本的express:

app.use(express.urlencoded({
extended: true
}))

这将消除由于服务器无法解析表单数据而导致的错误。

相关内容

  • 没有找到相关文章

最新更新