Node.JS JSON.parse erreur undefined
J'ai essayé d'analyser fichier json dans le nœud
mais il y a toujours l'erreur
et je google, mais ne peut pas le résoudre .
Pouvez-vous m'aider?
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)
c'est mon code
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);
et la db.json est-ce. Comme vous pouvez le voir, il n'y a pas d'erreurs.
{
"left": 3
}
OriginalL'auteur pan.mingzhi | 2013-03-04
Vous devez vous connecter pour publier un commentaire.
readFile
est asynchrone, de sorte que votreJSON.parse
ligne est appelée avant d'attribuer une valeur àcontent
, et ainsi decontent
a sa valeur par défaut deundefined
.Vous avez deux options:
De déplacer la logique en utilisant les données en la fonction de rappel.
Utiliser la version synchrone de
readFile
(qui estreadFileSync
).OriginalL'auteur T.J. Crowder
content
est égal àundefined
lorsque vous essayez de l'analyser.Vous devez analyser vos données JSON dans le
readFile
de rappel ou de l'utilisationreadFileSync
à la place.Aussi vous ne devriez probablement pas lancer à partir d'un rappel.
Cela m'amène à penser que vous avez quelques idées fausses de la façon dont node.js travaux et je vous recommande fortement de lire cette
OriginalL'auteur Floby