Javascript 如何在my node.js应用程序中读取json文件?

Javascript 如何在my node.js应用程序中读取json文件?,javascript,json,node.js,Javascript,Json,Node.js,我有一个简单的node.js服务,在这里我对jsonSchema中定义的模式执行一些json验证。该服务看起来像: app.post('/*', function (req, res) { var isvalid = require('isvalid'); var validJson=true; var schema = require('./schema.json') isvalid(req.body,schema

我有一个简单的node.js服务,在这里我对jsonSchema中定义的模式执行一些json验证。该服务看起来像:

app.post('/*', function (req, res) {
        var isvalid = require('isvalid');
        var validJson=true;
        var schema = require('./schema.json')
        isvalid(req.body,schema
            , function(err, validObj) {
                if (!validObj) {
                    validJson = false;
                }
                handleRequest(validJson,res,err,req);
            });
})
尝试使用上面第4行中的direct require语句。这将生成一个错误:

SyntaxError: c:\heroku\nodejs_paperwork\schema.json: Unexpected token t
这是我的schema.json:

{
  type: Object,
  "schema": {
    "totalRecords": {
      type: String
    },
    "skip": {
      type: Number
    },
    "take": {
      type: Number
    }
}

你可能忽略了。您可以使用
require
语句加载并解析它

var jsonData = require('/path/to/yourfile.json');
但是,上述方法的输出是缓存的,一旦您更新JSON文件并再次使用require加载它,它就会从缓存中加载内容。如果存储模式的JSON文件不经常更改,则此方法可能会很有用

如果您希望每次都从磁盘而不是从缓存加载JSON文件。使用
fs

var fs = require('fs');

fs.readFile(filepath, 'utf8', function (err, data) {
  if (err) {
    // handle error
    return;
  }

  jsonData = JSON.parse(data); 
});

看,你现在可以从技术上要求它了。不确定首选哪个。您的文本不是有效的JSON。键和值必须放在引号中,如:
“type”:“Object”
看起来更像这应该是一个
.js
文件,而不是
.json
文件?好的,注意它不是json,但我仍然希望读取文件内容以用于验证。require语句引发了一个错误。我试图使用direct require语句,但产生了一个错误,请参见上文。您没有有效的JSON,所有键都应该用双引号引用,javascript构造函数不是有效值。@Pindakaas您最好尝试使用jslint来验证JSON内容,更正错误并更新JSON文件。