2011-09-21 16 views
0

存在这里是我的功能怎么办文件的验证与错误处理

function loadscript(request, callback){ 

     fs.readFile('scripts/'+request.filename, function(err, data){ 
      callback(data); 
     }); 

} 

如何传递,如果不存在,那么文件就应该回答错误回调。

我试过fs.stat,但有一次,它返回error.code回调,但第二次,当我从服务器的URL调用该函数的错误。它

TypeError: first argument must be a string, Array, or Buffer 
    at ServerResponse.write (http2.js:598:11) 
    at /home/reach121/basf/index.js:37:17 
    at /home/reach121/basf/index.js:81:3 
    at [object Object].<anonymous> (fs.js:81:5) 
    at [object Object].emit (events.js:67:17) 
    at Object.oncomplete (fs.js:948:12) 

我应该用什么来解决这个问题给出

错误。

回答

1

如果您想知道加载文件是否出错,请检查err是不是null

var fs = require("fs"); 
fs.readFile("foo.js", function(err, data) { 
    if (err) { 
     console.log("error loading file"); 
     return; 
    } 

    console.log("file loaded"); 
}); 

如果你只想要做的事,如果该文件无法找到,您可以检查err.code等于ENOENT

var fs = require("fs"); 
fs.readFile("foo.js", function(err, data) { 
    if (err && err.code == "ENOENT") { 
     console.log("file not found"); 
     return; 
    } 

    console.log("file found, but there might be other errors"); 
});