我正在尝试从本地 json 文件中读取消息对象。该函数读取成功并且工作正常,但是当我返回对象或对象数组甚至对象键的单个值时,无论我返回什么,我都会得到一个未定义的变量。
function readMessage(room, cb) {
var filePath = directory + room + ".json";
//let messageArray;
fs.access(filePath, fs.F_OK, (err) => {
if (err) {
console.log("return false");
return;
} else {
//file exists so retrieve messages
console.log("Room Exists! Reading messages..")
const filePath = directory + room + ".json";
let data = fs.readFileSync(filePath);
var messData = JSON.parse(data);
//adding the new data to old and create another object
//console.log(typeof(messData.table));
return messData.table;
}
});
}
我尝试过其他返回方法。就像调用另一个函数,然后通过使它们成为单个对象来返回值。没有任何作用。
let message=readMessage(user.room);
console.log(message);
//OUTPUT
//undefined
输出未定义。 我不能直接使用函数中的值或函数的编写位置,因为我需要获取值并从服务器在我的聊天中显示消息。
JSON 文件采用以下格式:
{
"table": [
{
"id": 1232343440,
"username": "binik",
"message": "wsssqq",
"time": "9:27 AM"
},
{
"id": 1232343440,
"username": "binik",
"message": "wsssqq",
"time": "9:34 AM"
},
{
"id": 123234344,
"username": "bini",
"message": "gooooooodddd",
"time": "9:34 AM"
}
]
}