gpt4 book ai didi

node.js - 在 REST API 中处理错误情况的有效方法

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:18 25 4
gpt4 key购买 nike

我正在用node.js 编写REST API。我预计 GET 请求中最多可以有 5 个参数。如果有未识别的参数我希望发送 400 Bad Request。目前我是按以下方式处理的:

server.route({
method: "GET",
path : "/test",
handler : function (request, reply) {

if (request.query.a || request.query.b || request.query.c || request.query.d || request.query.e)
{

// do some processing
}
else {
reply("No valid parameters").code(400);
}
}
});

现在,如果存在一些有效和一些无效的情况,这不会处理这种情况。我可以通过使用更多 if 条件来解决这个问题。但我只是想知道是否有开发人员使用的标准或更有效的方法

最佳答案

Hapi 具有内置验证支持。您可以使用Joi验证查询:

var Joi = require('joi');

...

server.route({
method: 'GET',
path: '/test',
config: {
validate: {
query: {
a: Joi.string(),
b: Joi.string(),
c: Joi.string(),
d: Joi.string(),
e: Joi.string()
}
}
},
handler: function (request, reply) {

return reply('ok');
}
});

如果您向 /test?g=foo 发送请求,则会收到以下响应:

{ statusCode: 400,
error: 'Bad Request',
message: '"g" is not allowed',
validation: { source: 'query', keys: [ 'g' ] } }

关于node.js - 在 REST API 中处理错误情况的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com