일부 미들웨어로 인해 파일의 마지막 수정 시간을 알아야하는 값을 직접 반환해야하는 NodeJS의 문제가 발생했습니다. 분명히 올바른 방법은 내가 사용하고있는 미들웨어,려면 getFilename는 값을 반환해야 인해, 그러나NodeJS Filesytem 동기화 및 성능
getFilename: function(filename, next) {
fs.stat(filename, function(err, stats) {
// Do error checking, etc...
next('', filename + '?' + new Date(stats.mtime).getTime());
});
}
을하는 것, 그래서 내가 뭐하는 거지 :
이getFilename: function(filename) {
stats = fs.statSync(filename);
return filename + '?' + new Date(stats.mtime).getTime());
}
내가 완전히 이해가 안 돼요 본질적으로 NodeJS 이벤트 루프의 본질적으로, 내가 궁금해하던 점은 statSync가 어떤 특별한 소스를 가지고 있다면 어떻게 든 이벤트 루프를 펌핑했다는 것입니다 (또는 노드에서 호출되는 명령의 스택이 수행되기를 기다리고 있습니다). 로딩 또는 정말로 차단하고 있으며이 코드가 성능 악몽을 일으킬 수 있으며 나는 우리가있는 미들웨어를 다시 작성해야합니다. 콜백을 사용 하시겠습니까? 이벤트 루프가 디스크에서 대기하는 동안 계속 진행할 수 있도록 특별한 소스가 있다면 다른 곳에서도 사용할 수 있습니까 (일부 약속 라이브러리 또는 일부).
IO가 없기 때문에 미들웨어가 비동기 실행을 허용하지 않는 것은 이상한 일입니다. – usr