Я хочу добавить функциональность на моем сервере стека MEAN: 1) ввод localhost:3000/#/files
в браузере создаст временный текстовый файл, который можно открыть по localhost:3000/#/{FILE_ID}.txt
; 2) закрытие браузера приведет к удалению временного файла.Создайте временные файлы в нужном месте и удалите их после окончания сеанса
Для этого я пытаюсь использовать node-tmp, и написал код:
В переднем конце:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider
.state('files', {
url: '/files',
template: "Hello World",
controller: 'FilesCtrl'
})
}]);
app.controller('FilesCtrl', ['$http', function ($http) {
$http.post('/createFiles', null, null);
}])
В фоновом:
router.post('/createFiles', function (req, res, next) {
var tmp = require('tmp');
var fs = require('fs');
tmp.file({ prefix: 'projectA-', postfix: '.txt' }, function (err, path, fd) {
if (err) throw err;
console.log("File: ", path);
console.log("Filedescriptor: ", fd);
fs.writeFileSync(path, "Hello world!")
});
});
Как результат, ввод localhost:3000/#/files
в браузере создает файл /var/folders/fn/0rmvqqbs4k76lg5g6b7kll100000gn/T/projectA-40926BSynm5PKdMmW.txt
, но закрытие вкладки браузера НЕ удаляет этот файл.
Я использую библиотеку справа? Если да, то кто-нибудь знает, как я мог: 1) оставить файл tmp в localhost:3000/#/{FILE_ID}.txt
; 2) систематически удалять его после окончания сеанса?
К сожалению, я думаю, что я сделал ошибка в OP: открытие 'localhost: 3000/#/{FILE_ID} .txt' не должно быть таким важным; Я просто хочу поместить эти файлы в подпапку «the_folder_of_my_site \ tmp_txt», чтобы они могли быть открыты снаружи. В любом случае, пожалуйста, проигнорируйте это ... – SoftTimur
Так что 'node-tmp' правильная библиотека для использования? Нет ли существующей библиотеки для управления как генерацией файлов, так и удалением после отключения? – SoftTimur
@SoftTimur - Насколько я могу судить, глядя на doc 'node-temp', вы получаете прекрасные возможности для создания уникальных временных файлов, но у него нет функций для их очистки, когда данный клиент больше не подключен. По-видимому, методы очистки связаны с тем, когда вы завершили процесс node.js. Вы можете обратиться к моему ответу за идеи о том, как добавить очистку, когда данный клиент отключается. – jfriend00