Я сделал программу с cron npm для копирования файла из каталога в другой каталог один раз в 5 минут, например, если в исходном каталоге нет файла, он должен сказать, что файл не существует, это мой код
const cron = require("node-cron");
const ncp = require('ncp').ncp;
const fs = require("fs");
var source = './temp';
var destination = './lib';
cron.schedule("*/5 * * * *", function () {
ncp(source, destination, function (err) {
if (err) {
return console.error(err);
}
console.log('done!');
});
});
В моем случае, если процесс прошел успешно, его печать Готово! и даже если в источнике нет файла, его печать Готово, но я хочу распечатать Файл не существует, может ли кто-нибудь мне помочь
2 ответа
Вот мое решение: вы можете использовать readdir для проверки содержимого исходной папки. Если количество файлов больше 0, скопируйте их, в остальном ничего не делайте.
Надеюсь, что это ответ на ваш вопрос.
const cron = require("node-cron");
const ncp = require('ncp').ncp;
const fs = require("fs");
var source = './temp';
var destination = './lib';
cron.schedule("*/5 * * * *", function() {
fs.readdir(source, function(err, files) {
if (err) {
return console.error(err);
}
if (files.length === 0) {
console.log('empty folder!');
} else {
ncp(source, destination, function(err) {
if (err) {
return console.error(err);
}
console.log('done!');
});
}
})
});
Вы можете использовать fs.existsSync (path)
Он вернет true
, если путь существует, иначе false
.
Попробуй это
if (!fs.existsSync(path)) {
console.log('No file exists');
}
Похожие вопросы
Новые вопросы
node.js
Node.js - это неблокирующая асинхронная среда ввода-вывода, основанная на событиях, использующая движок Google V8 JavaScript и библиотеку libuv. Он используется для разработки приложений, которые интенсивно используют возможность запуска JavaScript как на клиенте, так и на стороне сервера, и, следовательно, выигрывают от повторного использования кода и отсутствия переключения контекста.