Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.JS JSON.parse错误未定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在节点中解析json文件
但总有错误
我谷歌它但无法解决它.
你能帮助我吗?

undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at Object.<anonymous> (app.js:13:19)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

这是我的代码

var app = express();
var mongodb = require("mongoskin");
var fs = require('fs');

var content;
fs.readFile('./config/db.json',function read(err,data) {
    if (err) {
        throw err;
    }
    content = data;
});
var config = JSON.parse(content);


app.get('/',function(req,res){
    res.send(config.left);
});

app.listen(process.env.VCAP_APP_PORT || 3000);

而db.json就是这个.如您所见,没有错误.

{
  "left": 3
}

解决方法

readFile是异步的,因此在为内容分配值之前会调用JSON.parse行,因此内容认值为undefined.

您有两种选择:

>使用数据将逻辑移动到回调中.

var app = express();
var mongodb = require("mongoskin");
var fs = require('fs');

fs.readFile('./config/db.json',data) {
    if (err) {
        throw err;
    }

    var config = JSON.parse(data); // <=== Note I'm using `data`,not `content`; we don't need a `content` variable anymore

    app.get('/',res){
        res.send(config.left);
    });

    app.listen(process.env.VCAP_APP_PORT || 3000);
});

>使用readFile的同步版本(即readFileSync).

// ...
content = fs.readFileSync('./config/db.json');

var config = JSON.parse(content);
// ...

大佬总结

以上是大佬教程为你收集整理的Node.JS JSON.parse错误未定义全部内容,希望文章能够帮你解决Node.JS JSON.parse错误未定义所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: