javascript - 如何读取我的 Node.js 应用程序中的 json 文件?

标签 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
    }
}

最佳答案

你可能忽略了。您只需使用 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); 
});

关于javascript - 如何读取我的 Node.js 应用程序中的 json 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971288/

相关文章:

javascript - 在 Sails.js 中从 MongoDB 获取数据

c# - 使用各种方法将访问者重定向到网站的不同区域?

javascript - 使用 <script type ="module"> 会触发 Chrome 中的弃用警告

javascript - 使用 Browserify 跨页面共享公共(public)代码

javascript - 验证电子邮件地址

javascript - 传递的 Json 不被 Controller 接受

php - Android使用JSON插入mysql

javascript - 在 JSON 中有条件地使用 javascript 变量

javascript - NodeJs/Formidable,上传图片错误

node.js - 即使对于新/小型项目,Angular8,Ng 服务在我的机器上也很慢