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

时间:2015-06-22 02:15:44

标签: 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
            , function(err, validObj) {
                if (!validObj) {
                    validJson = false;
                }
                handleRequest(validJson,res,err,req);
            });
})

尝试在上面的第4行中使用直接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
    }
}

1 个答案:

答案 0 :(得分:1)

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

var jsonData = require('/path/to/yourfile.json');

但是,缓存上述方法的输出,一旦更新JSON文件并再次加载需要,它就会从缓存中加载内容。如果存储模式的JSON文件确实存在不经常改变,这种方法可能有用。

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

var fs = require('fs');

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

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