我尝试将我的NodeJS API连接到我的数据库。
我已经为传输创建了某种类型的对象。我用LANGUAGE plpgsql。
一个例子是:
API_CAR:这种类型存在于我的数据库中
我收到JSON中的一个对象API_CAR
{
"car_id": 18,
"car_brand": "AUDI",
"car_model": "A4",
"car_nb_places": 5,
"car_picture_url": "http://...",
"horse_power": 3
}我想直接把数据传递给我的函数:
SELECT * FROM carPATCH( ... );我知道我可以这样做:
SELECT * FROM carPATCH
(
(18,'et','vel',5,'Donec dignsque',3):: API_CAR
);但这招很复杂。
我的问题是你会怎么建议:
在NodeJS中在数据库之外进行这种转换更好,还是我可以直接在内部传递这个JSON,然后再对它进行转换?
我认为应该可以将JSON转换为另一种类型,但我不知道如何实现。
这是一个简单的例子,但我有一些大的结构要转发到数据库。
发布于 2017-07-20 15:08:58
我们可以使用json_人口_记录()来实现这一点。它非常容易使用:
json_populate_record(null::API_CAR, <your JSON here>)用NodeJS举例:
exports.carPATCH = function (apiKey, args, res, next) {
let car = "'" + JSON.stringify(args.v_car.value) + "'";
apiKey = "'" + apiKey + "'";
DB.query.any("SELECT * FROM v01_api_patch_carPATCH" +
"(json_populate_record(NULL::API_CAR," + car + ")," + apiKey + ")", [true])
.then(data => {
res = resp.response_201(res, data);
})
.catch(error => {
res = resp.error(res, error);
})
};之后,我的函数工作得很好,因为它是一个对象API_CAR
https://dba.stackexchange.com/questions/180270
复制相似问题