【发布时间】:2021-06-15 00:58:43
【问题描述】:
我正在尝试构建一个 nodejs/express 项目,该项目使用 grpc 协议在服务器/客户端之间进行通信,以便进行简单的用户 CRUD 操作并在前端显示数据。 目前,服务器端可以很好地使用 mysql 库和 MariaDB 数据库。
据我在控制台中看到的,服务器端按预期发送数据,但我无法在客户端检索它们。
这里是令人兴奋的代码:
在 server.js 文件中,服务器端:
server.addService(customersProto.CustomerService.service, {
getAll: async(_, callback) => {
const allUsers = await sql.getAll(db);
callback(null, { allUsers });
console.log(allUsers);
},
}
console.log 的输出:
[{"id":"a68b823c-7ca6-44bc-b721-fb4d5312cafc","name":"David","age":33,"adress":"227th Baker Street"},{"id":"a68b823c-7ca6-44bc-b721-fb4d5312cahg","name":"Peter","age":99,"adress":"38th King Street"}
在 index.js 文件中,客户端:
async function getAll() {
return new Promise((resolve, reject) => {
client.getAll(null, (err, data) => {
if (!err) {
console.log("fonction getAll : " + JSON.stringify(data));
resolve(JSON.stringify(data));
} else {
reject(err);
}
});
});
}
app.get("/", async(req, res) => {
const data = await getAll();
console.log(data);
res.render("customers", {
results: JSON.stringify(data),
});
});
console.log 的输出:
fonction getAll : {"customers":[]}
{"customers":[]}
我不明白为什么数组是空的...
您有想法检索我的数据吗?
【问题讨论】:
标签: node.js express asynchronous grpc