gpt4 book ai didi

javascript - 我如何确保该函数正确处理错误?

转载 作者:行者123 更新时间:2023-12-02 23:36:43 26 4
gpt4 key购买 nike

我有一个功能可以检查快速应用程序中的用户输入。我不想使用任何库来验证这些输入,因此我声明了一个将错误插入其中的数组。

我已将中间件函数作为静态方法嵌入到类中...

static postAdchecker(req, res, next) {
let { state, price, manufacturer, model, bodytype } = req.body;
console.log('req', req.body);
const errors = [];

// If state is empty or undefined throw this error
if (!state) {
console.log('state', state);
const error = {
message: 'Please specify the state of the car'
};
errors.push(error);
}

// If state is supplied, convert it to lowercase, trim and check if value is new/used
if (state.toLowerCase().trim() !== 'new' && state.toLowerCase().trim() !== 'used') {
const error = {
message: 'State can only be new or used'
};
errors.push(error);
}

// Same goes for the others.
if (!price) {
const error = {
message: 'You will need to specify a sale price'
};
errors.push(error);
}

if (!manufacturer) {
const error = {
message: 'Specify a manufacturer'
};
errors.push(error);
}

if (!model) {
const error = {
message: 'Specify a model'
};
errors.push(error);
}

if (!bodytype) {
const error = {
message: 'You will need to specify a bodytype'
};
errors.push(error);
}

return res.status(400).json({
status: 400,
errors: {
body: errors.map(err => err.message)
}
});

console.log('errors', errors);
req.body.state = state.toLowerCase().trim();
req.body.price = price.toLowerCase().trim();
req.body.manufacturer = manufacturer.toLowerCase().trim();
req.body.model = model.toLowerCase().trim();
req.body.bodytype = bodytype.toLowerCase().trim();
// req.authData;
return next();

}

如何实现以下目标?

  • 将输入字段中的值转换为小写并在提供时进行 trim 。
  • 出现错误时,返回所有错误。
  • 如果没有错误,则将操作转移到下一个函数,而不是返回空数组。

最佳答案

您只是缺少一个条件:

 if(errors.length) { // <<<
return res.status(400).json({
status: 400,
errors: {
body: errors.map(err => err.message)
}
});
}

关于javascript - 我如何确保该函数正确处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56263642/

26 4 0
文章推荐: javascript - 当重生=1时如何停止法力增加和生命值增加
文章推荐: javascript - 有什么方法可以在纯Javascript中仅循环更新
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com