Как проверить, не являются ли параметры URL-адреса запроса пустыми в приложении node js? - PullRequest
0 голосов
/ 13 января 2020

Я новичок в node js программировании и пытаюсь разработать API с использованием node js, я могу получить ожидаемый результат от встроенного API, но я хотел бы выполнить некоторую обработку исключений. Для этого я хотел бы проверить, не являются ли параметры запроса, поступающие с URL, пустыми. Ниже приведен мой код:

async function getDetails(input) {
        // using knex to execute query
        return queries.getbymultiwhere('table_name',{
            name:input.name,
            id:input.id,
            role:input.role
        })
      }

router.get('/:name/:id/:role',(req,res)=>{    

    getDetails({
    name:req.params.name,
    id:req.params.id,
    role:req.params.role}).then(Results=>{ Do something with results}
})

В приведенном выше коде я хочу проверить, что значения параметров name, id и role не равны NULL. Любое полезное решение будет оценено.

Спасибо!

1 Ответ

2 голосов
/ 13 января 2020

Вы можете создать промежуточное ПО, которое проверяет эти параметры.

function check(fields) {
    return (req, res, next) => {
        const fails = [];
        for(const field of fields) {
            if(!req.query[field]) {
                fails.push(field);
            }
        }
        if(fails.length > 0){
            res.status(400).send(`${fails.join(',')} required`);
        }else{
            next(); 
        }
    };

}

app.get('/api', check(['name', 'id', 'role']), (req, res) => {
    getDetails()...
});
...