【问题标题】:I'm trying to read from a json file in my ejs template我正在尝试从我的 ejs 模板中的 json 文件中读取
【发布时间】:2020-04-02 14:31:03
【问题描述】:

我有我的 data.json 文件,我想从文件中存储的数据读取到“./views/modules/header.ejs”。理想情况下,我的项目中的所有模块都可以使用 json 文件中的数据。

我正在使用 expressJs 文件并希望将信息从我的 json 文件打印到我的网页。我已经能够使用以下代码在我的 app.js 文件中加载数据:

//import json
'use strict';
const fs = require('fs');
let jsonData = fs.readFileSync('data.json', 'utf8');
let data = JSON.parse(jsonData);
console.log(data.menu);

这是存储在菜单数组中的内容:

"menu": [
    {
        "title": "Home",
        "link": ""
    },
    {
        "title": "Location",
        "link": ""
    },
    {
        "title": "Facilities",
        "link": ""
    },
    {
        "title": "Building details",
        "link": ""
    },
    {
        "title": "Floor plans",
        "link": ""
    },
    {
        "title": "Contact",
        "link": ""
    }
],

这是我的 header.ejs 文件:

<ul class="menu-list">
    <% for(var i=0; i < data.menu.length; i++) { %>
        <li><%= data.data.menu[i].title %></li>
    <% } %>
</ul>

我相信我的 ejs 文件中缺少一个将调用数据的语句。提前感谢您的帮助。

这是我的 index.js 文件的样子。

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Bank' });
});

module.exports = router;

【问题讨论】:

  • 我收到数据未定义错误,我不小心在通话中出现了第二个“.data”。我相信这是因为需要以某种方式导入 json。
  • 现在运行正常
  • 那没用,我的错误是:“数据未定义”
  • 可以连接skype吗
  • 标签: javascript arrays node.js json express


    【解决方案1】:

    路由器文件中使用的代码

    router.get('/', function(req, res, next) {
      const fs = require('fs');
      let jsonData = fs.readFileSync('data.json');
      let data = JSON.parse(jsonData);
      let dataRecord = data.data;
      let dataRecordMenu=dataRecord.menu;
    res.render('index', { title: 'Bank',data:dataRecordMenu });
    });
    

    该代码在视图文件中使用

    <ul class="menu-list">
          <% for(var i=0; i < data.length; i++) { %>
              <li><%= data[i].title %></li>
          <% } %>
      </ul>
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签