Javascript 如何通过错误处理验证文件是否存在

Javascript 如何通过错误处理验证文件是否存在,javascript,node.js,Javascript,Node.js,这是我的功能 function loadscript(request, callback){ fs.readFile('scripts/'+request.filename, function(err, data){ callback(data); }); } 如果文件不存在,我如何传递该文件,然后它应该回复错误以进行回调 我尝试了fs.stat,但有一次它将error.code返回回调,但第二次当我从服务器的url调用该函数时,它给

这是我的功能

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)
TypeError:第一个参数必须是字符串、数组或缓冲区
在ServerResponse.write(http2.js:598:11)
at/home/reach121/basf/index.js:37:17
at/home/reach121/basf/index.js:81:3
在[对象]。(财政司司长:81:5)
在[object].emit处(events.js:67:17)
在Object.oncomplete(fs.js:948:12)

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

如果您想知道加载文件时是否出错,请检查
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
是否等于
enoint

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");
});