javascript - Node.js + Express + MySQL 作为文档存储(结果)

标签 javascript mysql node.js express nosql

我在 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/

相关文章:

javascript - 如何在特定偏移量中打印 div 的宽度百分比?

javascript - 为什么带有 onclick 的按钮内的 img 不触发脚本?

mysql - 在 MySQL 中使用 EXPLAIN 或 INDEX

php - 使用准备好的语句从 mysql 查询中获取多行?

javascript - 如何在vue js中首先选择一个时间并在所有日子中使用它?

javascript - 基于javascript中具有多个数组的另一个对象的过滤的过滤数组

php - jquery datepicker 日期格式

javascript - 从异步表达式中获取返回值

javascript - 我怎样才能使它成为一个异步函数

node.js - Axios 请求带有来自 Node 的分块响应流