gpt4 book ai didi

node.js - Express、node.js 和 redis : Separated function to access data

转载 作者:IT王子 更新时间:2023-10-29 06:12:12 25 4
gpt4 key购买 nike

我正在尝试创建一个文件“users.js”,其中 id 喜欢管理对用户数据的所有 redis 访问。在这个文件中,我有下一个功能,我将用户保存在列表中,然后从他们的键中加载所有用户:

exports.getUsers = function(){
var usrs;
client.lrange('users', 0, -1, function(err, rep){
client.mget(rep, function(e,r){
usrs = r;
});
});
return usrs;
};

我有另一个文件“admin.js”,我试图在其中管理我的管理面板的路由。在此文件中,我需要 users.js 文件,并调用 users.getUsers() 函数。我希望得到一个包含用户对象的数组,或者至少是包含所有这些对象的字符串。问题是它总是返回“undefined”。

据我了解,发生的事情是我尝试在 mget 完成回调之前返回 usrs 变量。但我不知道如何解决。

问题是...我怎样才能让返回语句等待mget?有没有其他方法来组织代码并保持数据库访问按字段分隔?

最佳答案

你不能让 getUsers 在返回之前等待响应,所以你需要让你的函数支持一个回调参数,当数据准备好时你的函数调用:

exports.getUsers = function(callback){
client.lrange('users', 0, -1, function(err, rep){
client.mget(rep, function(e,usrs){
callback(e,usrs);
});
});
};

关于node.js - Express、node.js 和 redis : Separated function to access data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12042744/

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