내 컴퓨터에서 Express 프레임 워크를 사용하여 node.js 프로그램을 개발했으며 불만없이 정상적으로 실행됩니다.
그러나 SUSE Studio 어플라이언스에서 프로그램을 실행하려고하면 파일 상호 작용시 오류가 발생합니다.
Error: ENOENT, stat './path/to/file'
파일 권한이 올바른지 확인했습니다. 내 컴퓨터와 어플라이언스가 중요한 경우 다른 버전의 노드를 실행하고 있습니다.
이견있는 사람?
답변
a .
로 지정된 경로 는 스크립트 파일이 아닌 현재 작업 디렉토리를 기준으로합니다. 따라서 실행하면 파일을 찾을 수 node app.js
있지만 실행하면 찾을 수 없습니다 node folder/app.js
. 이것에 대한 유일한 예외는 모듈 당 존재하므로 어떤 모듈에서 호출되는지 알고 require('./file')
있기 때문에 가능 require
합니다.
스크립트를 기준으로 경로를 만들려면 __dirname
변수 를 사용해야합니다 .
var path = require('path');
path.join(__dirname, 'path/to/file')
또는 잠재적으로
path.join(__dirname, 'path', 'to', 'file')
답변
여기 app.js를 사용하는 코드
입력은 파일 이름을 지정합니다
res.download(__dirname+'/'+input);