【发布时间】:2018-03-24 08:22:16
【问题描述】:
我正在尝试检查服务器上的文件系统以检查文件是否存在。这个简单的问题实际上变成了一项非常具有挑战性的任务。这是我不起作用的基本代码:
var fs = require('fs');
var arrayLength = arr.length;
for (var i = 0; i < arrayLength; i++) {
var imgfile = arr[i].country
fs.exists('/var/scraper/public/images/flags' + imgfile + ".png", (exists) => {
console.log(exists ? 'it\'s there' : 'not here!');
});
}
我注意到这不是异步的并且不会起作用。我找到了这个链接: https://nodejs.org/dist/latest-v9.x/docs/api/fs.html#fs_fs_exists_path_callback
我的代码应该是这样构建的。
fs.open('myfile', 'wx', (err, fd) => {
if (err) {
if (err.code === 'EEXIST') {
console.error('myfile already exists');
return;
}
throw err;
}
writeMyData(fd);
});
我希望得到一些帮助来帮助我重写我的代码以使其异步?
对此的任何帮助将不胜感激。
【问题讨论】:
-
你的意思是“不是异步的,不会工作”?为什么它不起作用?
-
好吧,当我在 nodejs 中运行它时它不起作用老实说我不知道“异步”是什么意思,所以这真的让我的问题变得困难
-
当我运行我的第一个代码时,它在该目录中找不到任何文件,但是该目录应该是正确的。很长一段时间以来,我一直在努力解决如何使这项工作。
-
同步代码在 Node.js 中运行良好,通常我们对任何 i/o 使用异步调用。这通常是为了确保资源的有效利用,而不是其他任何事情。
标签: node.js