[英]Node.js + Espress + MySQL as Document Store (results)
我已经在Node.js中创建了一个快速应用程序
我使用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.