【问题标题】:Nodejs Json ParsingNodejs Json 解析
【发布时间】:2015-06-28 14:07:10
【问题描述】:

我正在尝试使用 jqgrid 的节点 js 加载 json 数据。我也在使用 jqgrid 和 Express Js。当我运行 node js 时,它没有加载 json 文件。谁能帮助我可能是什么问题。这里是节点js代码sn-p:

var express = require("express");
var app     = express();
var path    = require("path");
var config = require('./data.json');

app.get('/',function(req,res) {
    res.sendFile(__dirname + '/griddemo.html')
})

app.use(express.static(__dirname + '/public'))
app.listen(3000);

console.log("Running at Port 3000");

【问题讨论】:

  • 试试console.log(config);
  • @RobertRozas 正确!!请打印日志并检查向我们显示错误。
  • data.json 文件是否与包含您提供的代码的文件的路径相同? data.json 文件是否包含有效的 json?

标签: jquery json node.js express jqgrid


【解决方案1】:

看起来 data.json 文件路径有问题,或者 json 文件可能有问题。我试过你的脚本,它对我有用。我的建议是密切关注 json 文件路径。

【讨论】:

    【解决方案2】:

    您将 JSON 数据加载到 config 对象中,然后您对这个对象什么也不做。

    我想您想在 HTML 文件中传递此配置以配置 jqgrid 插件(顺便说一句,我不知道)。

    在这种情况下,您应该使用模板语言来生成动态页面(如果您以前使用过 PHP,EJS 对您来说会更熟悉,否则您应该保留 - 现在 - 默认的,jade)并传递您的配置反对您使用 HTML 制作的模板。

    举例说明:

    ...
    app.set('view engine', 'ejs');//Don't forget to install the ejs module
    app.get('/',function(req,res) {
      res.render(__dirname + '/griddemo.ejs', {jqgridConfig: config})
    })
    ...
    

    app.js

    ...
    <script>
      var jqgrid_config = <%- JSON.stringify(jqgridConfig) %>;
    </script>
    ...
    

    griddemo.ejs

    如果您还不知道express app generator,最好使用它,它将极大地帮助您理解使用 Express 呈现动态页面所需的概念。

    在不生成动态页面的情况下完成这项工作的另一种方法是将data.json 放入/public 并从griddemo.html 加载此JSON 文件(请参阅how to use json file in html code

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 1970-01-01
      • 2016-11-04
      • 2015-03-16
      • 2018-09-18
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多