MEAN 스택의 서버에 기능을 추가하고 싶습니다. 1) 브라우저에 localhost:3000/#/files
을 입력하면 임시 텍스트 파일이 만들어져 열려있을 수 있습니다 by localhost:3000/#/{FILE_ID}.txt
; 2) 브라우저를 닫으면 임시 파일이 삭제됩니다. 이를 위해 임시 파일을 올바른 위치에 생성하고 세션이 끝난 후 삭제하십시오.
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!")
});
});
: 백 엔드에서
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);
}])
: 프런트 엔드에서
을 결과적으로 브라우저에 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 - 문서'node-temp'를 보면서 알 수 있듯이, 고유 한 이름의 임시 파일을 생성하기위한 완벽한 기능을 제공하지만, 지정된 클라이언트가 더 이상 연결되지 않은 경우 정리할 수있는 기능이 없습니다. 정리 메소드는 node.js 프로세스가 종료 될 때와 관련이있는 것처럼 보입니다. 주어진 클라이언트가 연결을 끊을 때 클린업을 추가하는 방법에 대한 아이디어를 보려면 내 대답을 참조하십시오. – jfriend00