Lire un fichier en Node.js

Je suis assez perplexe à la lecture de fichiers en Node.js.

fs.open('./start.html', 'r', function(err, fileToRead){
    if (!err){
        fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
            if (!err){
            console.log('received data: ' + data);
            response.writeHead(200, {'Content-Type': 'text/html'});
            response.write(data);
            response.end();
            }else{
                console.log(err);
            }
        });
    }else{
        console.log(err);
    }
});

Fichier start.html est dans le même répertoire que le fichier qui tente de l'ouvrir et de le lire.

Cependant, dans la console j'obtiens:

{ [Erreur: ENOENT, ouvrir". /start.html'] errno: 34, code: 'ENOENT', path: './start.html' }

Des idées?

  • Les Chances sont que le fichier n'est pas d'où vous/le code pense qu'il est. Si le fichier est dans le même répertoire que le script, essayez: path.join(__dirname, 'start.html')
  • Pouvez-vous console.log("__dirname: "+ __dirname); à droite avant la sortie err? Qui dira ce répertoire est local pour votre exécutable à ce moment-là. Il y a des choses que vous pouvez faire pour changer votre emplacement et peut-être vous frapper que, peut-être que le code n'est pas d'exploitation à l' __dirname où vous pensez qu'elle est.
  • Le fichier doit être dans le même répertoire que vous exécutez le nœud de processus de. Ainsi, si le fichier est dans dir/node/index.html et ainsi est votre app.js fichier, mais vous ne: nœud /dir/node/app.js Ensuite, vous recevez un message d'erreur. dc5 la solution devrait faire l'affaire.
  • Vous devez fermer cette question, ou de la fourniture de vos modifier, à titre de réponse et de l'accepter.
  • utilisation path.join(__dirname, '/filename.html') et prendre de référence à partir de stackoverflow.com/a/56110874/4701635