Как вернуть ответ 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.