How to read a json file in my node.js app?
我有一个简单的node.js服务,在这里我对JSonSchema中定义的模式执行一些JSON验证。服务内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 | 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语句。这会产生一个错误:
1 2 | SyntaxError: c:\heroku odejs_paperwork\schema.json: Unexpected token t |
这是我的schema.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 | { type: Object, "schema": { "totalRecords": { type: String }, "skip": { type: Number }, "take": { type: Number } } |
你可能忽略了。您可以使用
1 | var jsonData = require('/path/to/yourfile.json'); |
但是,上面方法的输出被缓存,一旦您更新了JSON文件并再次加载了Require,它就会从缓存中加载内容。如果存储模式的JSON文件没有经常更改,那么这个方法可能很有用。
如果您每次都想从磁盘加载JSON文件,而不是从缓存加载。使用
1 2 3 4 5 6 7 8 9 10 | var fs = require('fs'); fs.readFile(filepath, 'utf8', function (err, data) { if (err) { // handle error return; } jsonData = JSON.parse(data); }); |