Как вернуть ответ API при использовании claudia-api-builder?

Я использую Claudia-api-builder с Sequelize и сталкиваюсь с проблемами при возврате ответа из API

app.js:

const ApiBuilder = require('claudia-api-builder');
const app = new ApiBuilder();

const citizenPersonalDetails = require('./app/controller/cont.citizenpersonaldetails');

app.get('/citizens', function (req, res) {
  citizenPersonalDetails.getAll(req, res);
})

module.exports = app

когда я возвращаю такой ответ:

getAll: function (req, res) {
        citizenPersonalDetails.findAll({})
            .then(citizenPersonalDetails => {
                if (citizenPersonalDetails.length === 0) {
                    return res.status(200).json(citizenPersonalDetails)
                } else {
                    return res.status(200).json(citizenPersonalDetails)
                }
            }).catch(error => {
                console.log("==== ERROR ====", error);
            });
    }

Это дает мне ошибку: res.status не является функцией

В документации Claudia упоминается только объект запроса:

https://claudiajs.com/claudia-api-builder.html

из документации:

var ApiBuilder = require('claudia-api-builder'),
    api = new ApiBuilder(),
    superb = require('superb');

module.exports = api;

api.get('/greet', function (request) {
    return request.queryString.name + ' is ' + superb();
});

есть ли объект ответа для клавы? как правильно вернуть ответ?

Я использую claudia-local-api для тестирования APIS локально.

1 ответ

Решение

Здесь нет response 2-й параметр (как в Express.js).

Похоже, что есть ApiResponse, который можно использовать для возврата настраиваемого ответа и заголовка клиента.

Но если у вас уже есть эта работа с использованием Express.js, возможно, вообще пропустите claudia-api-builder и просто используйте claudia для запуска приложения Express.js в AWS Lambda.

Другие вопросы по тегам