找不到Node.js文件

时间:2011-09-05 09:52:40

标签: html node.js

我在以下文件结构中使用Node.exe

Node/
  node.exe
  index.js
  /view
     index.html

运行以下代码时:

  var html;
  fs.readFileSync('/view/index.html', function(err, data) { 
    if(err){
      throw err;
    }   
    html = data;  
  });

我收到以下错误:

Error: ENOENT, The system cannot find the file specified. '/view/index.html'

你能看到导致错误的原因吗?我对node.js很新。

其他信息: 我正在运行Windows 7 64位,最新版本的node.exe。

我找到了解决方案!

当node.exe通过cmd运行时,node.exe的默认目录是user ....这就是我出错的地方,它使用了与node.exe所在位置不同的目录。

2 个答案:

答案 0 :(得分:1)

少数事情:

  • 您应首先解析相对路径到实际路径并尝试读取文件。
  • 异步读取文件以获取回调
  • 应纠正相对路径。我的代码中的“./view/index.html”是相对于启动node.js引擎的路径。

粗略的代码将是:


        // get real path from relative path
        fs.realpath('./view/index.html', function(err, resolvedPath) {
            // pass the resolved path to read asynchronously
            fs.readFile(resolvedPath, function(err, data) { 
                // assign the variable per your use case
                html = data;
            })
        });

请注意,我使用的是版本4.11(最新的稳定版本)

答案 1 :(得分:0)

您可能想要失去同步部分。有回调时只有readFile

另外:./ path,not / path。