我正在尝试使用jqgrid的节点js加载json数据。我也在使用jqgrid和Express Js。当我运行node js时,它没有加载json文件。有没有人能帮我解决问题。以下是node js代码片段:
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");发布于 2015-04-21 20:25:59
看起来data.json文件路径有问题或者json文件可能有问题。我已经试过你的脚本了,它对我很有效。我的建议是关注json文件路径。
发布于 2015-04-21 20:38:38
将JSON数据加载到config对象中,然后不对该对象执行任何操作。
我想您想要在HTML文件中传递此配置,以便配置jqgrid插件(我不知道BTW)。
在这种情况下,您应该使用模板语言来生成动态页面(如果您以前做过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)。
https://stackoverflow.com/questions/29771769
复制相似问题