【问题标题】:How to return the API response while using claudia-api-builder?使用 claudia-api-builder 时如何返回 API 响应?
【发布时间】:2020-07-23 12:04:12
【问题描述】:

我正在使用带有 Sequelize 的 Claudia-api-builder 并在从 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 有任何响应对象吗?返回响应的正确方法是什么?

我在本地使用 claudia-local-api 进行 APIS 测试。

【问题讨论】:

    标签: javascript node.js sequelize.js claudiajs claudia.js


    【解决方案1】:

    没有response 第二个参数(就像您在 Express.js 中一样)。

    似乎有一个ApiResponse 可用于返回自定义响应和客户标头。

    但是,如果您已经使用 Express.js 进行了这项工作,则可以完全跳过 claudia-api-builder 并使用 claudia 来run Express.js app in AWS Lambda

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 2021-10-16
      • 2017-09-13
      • 1970-01-01
      相关资源
      最近更新 更多