繁体   English   中英

Node.js + Espress + MySQL作为文档存储(结果)

[英]Node.js + Espress + MySQL as Document Store (results)

我已经在Node.js中创建了一个快速应用程序

  • 快递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对象。

然后,我们可以将其注入到车把模板中,并使用类似以下内容的东西。 假定您将它与名为“数据”的对象一起传递到了车把中,尽管它也可能是“用户”甚至是“此”。

<p>{{data.name}}</p>
<p>{{data.username}}</p>

哪个将呈现

Andreas
andreaslacza

您需要遍历结果数组并将JSON.parse应用于每个值。

像这样

 'use strict' let resultData = [ { id: '1', date: '2018-02-25T17:48:52.000Z', value: '{"name": "Andreas", "username": "andreaslacza", "gender": "Male"}' },{ id: '1', date: '2018-02-25T17:48:52.000Z', value: '{"name": "Andreas", "username": "andreaslacza", "gender": "Male"}' } ]; resultData.forEach(function(entry) { entry.value = JSON.parse(entry.value); }); console.log(resultData); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM