因此,我正在处理一个节点js项目,并希望从一个目录加载所有文件。所有内容都可以在本地主机上运行,但是当我将它推到服务器时,它会抛出以下错误:
Error: ENOENT, readdir './maps/'错误在这里(app.js):
var dir='./maps/';
fs.readdir(dir,function(err,files){
if (err) throw err;
files.forEach(function(file){
fs.readFile(dir+file,'utf-8',function(err,data){
if (err) throw err;
//code..
}
});
});
});我三次检查了服务器上的目录树,它确实与localhost上的目录树相同,所以我不知道这里发生了什么。
目录树看起来如下(在服务器和本地主机上):
src
app.js
maps
map1.json
map2.json
routes
index.js
and so on...服务器在amazon上运行。
发布于 2015-03-22 00:38:09
在本地启动服务器时,通常会遇到这种情况,而不是远程启动。
例如,如果您在本地运行node app.js,而亚马逊实际上运行的是node src\app.js,那么您的相对and都不会正确解析。检查的一个简单方法是在您的process.cwd()开始时记录什么app.js报告,这样您就知道它实际上是在哪个目录中执行的。然后,您甚至可以使用-if -使用process.chdir()导航app.js脚本,以确保您的所有相对-if使用如下所示的操作
var path = require("path");
process.chdir(path.dirname(__filename));它将使用"this script“的位置,即Nodejs中的全局__filename (这是一个绝对文件位置btw),找到它自己的目录(通过path模块),然后将活动目录更改为与当前文件所在的位置相同。
https://stackoverflow.com/questions/29187111
复制相似问题