2011-10-06 61 views
7

我正在尝试关注nodetuts.com的第3集。此外,我正在使用最新(不稳定)版本的节点 - node.exe,版本0.5.2。这是我的代码,几乎整整一天,我一直在用这个错误在墙上打我的头。它只是一个窗口的东西?Node.js - fs.stat抛出ENOENT操作成功完成

var http = require('http'); 
var fs = require('fs'); 

var file_path = __dirname + '\\me.jpg'; 
console.log('serving: '+file_path); 
fs.stat(file_path, function(err, stat){ 

    if (err) throw err; 

    http.createServer(function(request,response){ 

     response.writeHead(200, { 
     'Content-Type':'image/jpeg' 
     }); 

     fs.readFile(file_path, function(err, file_content){ 

      response.write(file_content); 
      response.end(); 
     }); 

    }).listen(8000); 
}) 

谢谢!

回答

10

的0.5.x在Windows上车。你可以做

fs.readFile(__dirname + '/file.txt', callback); 

我相信0.6会解决这些问题。 :)

+0

而不是'回调',我应该放在回调函数(不附加到var)是否正确?我认为我做错了,结果仍然是一样的...谢谢。 – RHH

+0

这个问题不是你编码的方式,也不是一些语法。问题在于'网络',实际上网络代码更深入。我们需要等待0.6版本,或者你可以通过使用'__dirname'来工作,正如我上面显示的那样。 – Tower

+0

0.6仍然有这个问题。在使用npm(Windows)安装expressj时,我已经有了这个功能。 –

0

现在应该避免使用节点v0.5.x,因为它被认为是不稳定的。使用v0.4.x。如果您使用的git抢节点,这样做:

cd /path/to/your/local/node/git 
git checkout v0.4.12 
make && sudo make install 
+0

出于某种原因,只是...没有做任何事情。它现在已经使用了我的CPU的50%,大约3个小时。去搞清楚。 (这是我一直在使用.exe的主要原因) – RHH

+1

@dresende:他使用的是Windows,而不是* nix。 – Tower

+0

是的..我注意到了。 Windows仍然是越野车,你应该使用.exe或编译并使用cygwin(牦牛!)。或等待0.6即将推出。 – dresende