gpt4 book ai didi

node.js - Sequelize 查询返回 Promise { _bitField : . ..}

转载 作者:行者123 更新时间:2023-12-03 22:22:15 24 4
gpt4 key购买 nike

我想 从另一个变量中的 sequelize query 返回 值。我必须尝试 不同的解决方案 ,但我有相同的结果:

    Promise {
_bitField: 2097152,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined,
_boundTo: SellerPresent }

我的 js 文件(目前):
function findIdSeller(selectEvent) {
var match = {attribute: ['seller_id'], where: {event_id: selectEvent}, raw: true};
return models.SellerPresent.findAll(match)}

exports.findDataSeller = function (selectEvent) {
var seller = [];
return findIdSeller(selectEvent).then(function (result) {
return seller.push(result.seller_id)
})
};

我需要在路由中导出这些数据。我该怎么做?

最佳答案

首先,请注意异步结果无法同步处理(或导出),因此您需要始终坚持使用 promise。

其次,findAll 方法将返回一个数组,因此您不应访问该数组上的 seller_id,而是访问其元素。为此,您可以使用 map :

function findIdSeller(selectEvent) {
var match = {
attribute: ['seller_id'],
where: {
event_id: selectEvent
},
raw: true
};
return models.SellerPresent.findAll(match);
}

// You can export a promise, not the promised value:
exports.findDataSellerPromise = function (selectEvent) {
return findIdSeller(selectEvent).then(function (result) {
return result.map(function(seller) {
return seller.seller_id
});
});
});

您需要调用 findDataSellerPromise 作为返回 promise 。因此,例如,如果您需要在路由中使用 promise 的数据作为响应,则在其上调用 then:
app.get('/', function (req, res) { 
// ....
findDataSellerPromise(selectEvent).then(function(sellers) {
res.send(sellers);
});
});

关于node.js - Sequelize 查询返回 Promise { _bitField : . ..},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44371833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com