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