首页 > 解决方案 > Loopback:发送额外的键/值对作为响应

问题描述

我已经搜索了文档,但无法找到如何将其他数据添加到我的 json 响应中。

假设我正在执行对 /api/customers 的 GET 调用

我希望每个客户都返回字段“地址”,它是客户模型中定义的 street_name 和 door_number 属性的串联。

因此,我需要在某个地方定义“地址”= this.street_name + ' ' + this.door_number 并将其添加到响应中。有人可以给我举个例子吗?

更新

我试图将此添加到 customer.js

'use strict';
const app = require('../../server/server');

module.exports = function(Customer) {

  const query = "SELECT *, CONCAT( door_number|| ' ' || street_name) as address from my_customer_table";

  app.dataSources.mysqlIDs.connector.query(query, (err, res) => {
    if (err) {
      console.log(err.message);
    }
    return res;
  });
};

更新 2:

如果我在 res 上进行控制台登录:

[ RowDataPacket {
    id: 5,
    ...
    address: '491 Hondsruglaan' 
  },
  RowDataPacket {...
  }
]

当我在 SQL 查询地址中使用管道字符时会显示为:

address: '1'

但是,地址字段尚未反映在 API 响应中。所有字段都在那里,但不是地址。似乎代码仅在应用程序启动时执行。

标签: loopbackjs

解决方案


常量查询 =SELECT *, CONCAT( door_number|| ' ' || street_name) as address from customer

我在这里使用 postgresql 数据库

loopback.dataSources.postgres.connector.query(query, (err, res) => { return cb(err, res); });

只有执行本机查询才能实现响应的串联两列,环回的默认方法不支持


推荐阅读