我在 Node.js 中创建了一个 Express 应用程序
- express v4.16.2
- mysql v2.15.0
我使用 MySQL 作为文档存储
Columns
id: integer
value: JSON
当我通过 mysql 查询 MySQL 数据库时,我得到结果:
RowDataPacket {
id: '1',
date: '2018-02-25T17:48:52.000Z',
value: '{"name": "Andreas", "username": "andreaslacza", "gender": "Male"}'
},
// ... and so on
您可以看到我的 JSON 嵌套在值下,但我需要如下输出才能在 mustache / Handlebars 中使用它:
RowDataPacket {
"id": 1,
"date": "2018-02-25T17:48:52.000Z",
"value": {
"name": "Andreas",
"username": "andreaslacza",
"gender": "Male"}
},
最佳答案
以下代码片段假设您在 JavaScript 中使用类似 async/await
的内容,但如果您使用回调和 Promise,则效果相同。
假设您正在使用类似的方法从数据库中获取信息
// Get data from our DB using the `mysql` library...
var dbResult = await dbRequest();
var data = JSON.parse(dbResult.value);
然后,您将能够获取 dbResult.value
对象并将其转换为 JSON,就像我们上面所做的那样。这将使我们能够像任何对象一样将其用作 JavaScript 对象。
然后我们可以将其注入(inject)到 Handlebars 模板中并使用如下所示的内容。这假设您将其传递到带有名为“data”的对象的 Handlebars 中,尽管它也可能是“user”甚至“this”。
<p>{{data.name}}</p>
<p>{{data.username}}</p>
这将渲染
Andreas
andreaslacza
关于javascript - Node.js + Express + MySQL 作为文档存储(结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48977861/