2

我正在尝试 require() 这个 JSON 文件。

{
    "info" : function (request) {
        var i = "<pre>";
        i+= "current working directory: " + process.cwd() + "\n";
        i+="request url: " + request.url + "\n";
        i+= "</pre>";
        return i;
    }
}

使用这条线

var render = require('./render.json');

但我从 JSON 文件中得到一个异常:Unexpected token u

请问我做错了什么?

以下在浏览器中工作。这是我所期望的,因为函数是一个对象。nodejs 文档建议 JSON 可以是一个模块:http ://nodejs.org/api/modules.html#modules_file_modules

<html>
<head>
</head>
<body>

<script>

  var a = {
    "b" : function(msg){
      alert(msg);
    }
  }

  a.b("Hello");

</script>

</body>
</html>
4

2 回答 2

4

JSON 纯粹是一种数据描述语言。根据http://www.json.org,它是一种“轻量级数据交换格式”。- 不是编程语言。

您不能在 JSON 中使用函数并使用节点。

{
    "error": [
        function (request) {

        }
    ]

}

在 JSON 结果中定义函数是否有效?

于 2013-09-28T00:50:55.450 回答
1

我解决这个问题的方法是创建一个 js 文件而不是 json 文件:
config.js

exports.config = [
    {
        "foo": 12,
        "bar": 10,
        "baz": function(a){
            console.dir(a);
        }
    }
]

然后在节点内:

 config = require('./config.js').config;

 var a = {
   m: 'something',
   o: 'somethingelses'
 }

 config[0].baz(a);
于 2014-02-05T06:54:02.027 回答