我有一个使用 Express JS 构建的API,可以使用 GET 方法查找数据。成功获取数据。 这是我的代码:
router.get('/personal/:id', cont.personal.getPersonalDataById)
getPersonalDataById: function (req, res) {
PersonalInfo.findOne({
where: { id: req.params.id }
}).then(result => {
if(result){
utils.success(res, result)
} else {
utils.fail(res, 'Personal Data Not Found')
}
}).catch(reason => utils.fail(res, reason))
}
我的问题是,如果我请求localhost:3000/personal/
,它将获取所有数据。我的意思是没有参数的请求,我该如何发送响应 ID参数不能为空,如果请求没有参数?我可以用渔获或其他方式做到吗?或仅应与手动验证一起使用,例如:
var id = req.params.id;
if(id == null){
utils.fail(res, "ID Param can't be empty");
}
//OR
if(!id){
utils.fail(res, "ID Param can't be empty");
}
谢谢
答案 0 :(得分:0)
我建议使用express-validation
和joi
。
您的路线应如下所示:
const express = require('express');
const validate = require('express-validation');
const Joi = require('joi');
const routeValidation = {
// GET /personal/:id
personal: {
params: {
userId: Joi.string().required(),
},
},
}
router.get('/personal/:id', validate(listUsers), cont.personal.getPersonalDataById)
非常感谢,您将在服务器上进行一些操作之前进行验证