Я использую Marklogi c npm module v2.1.1 с моим приложением express (v4.16.4) Node. В моей функции контроллера я использую метод db.eval для возврата данных вместе с необходимым кодом состояния, используя функцию xdmp.setResponseCode()
. Найдите приведенный ниже фрагмент кода
// controller function
function getNewsArticleById(db: any, fileName: string, req: any, res: any, next: any) {
return db.eval(
`xdmp.setResponseCode(403, 'Forbidden');
{data: 'abc'};`,
{},
})
.result(
data => {
res.json(data[0].value);
},
err => {
console.log(err);
next(err);
});
}
. Вышеуказанная функция привязана к маршруту и возвращает желаемый ответ, который может быть либо успешным (200 кодов ответов), либо неудачным (400 кодов ответов). Успешный случай работает нормально, но когда когда-либо код устанавливается равным 400 или более, код ответа я получаю ошибку 500, говорящую
eval JavaScript на сервере: невозможно обработать ответ с состоянием 403.
Мне кажется, это ограничение функции db.eval()
MarkLogi c
Подскажите, пожалуйста, как это исправить? Если нет, то какая должна быть лучшая альтернатива?