【发布时间】:2015-03-22 08:38:09
【问题描述】:
所以我正在处理一个节点 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..
}
});
});
});
我检查了服务器上的目录树三次,它确实与本地主机上的相同,所以我不知道这里发生了什么。
目录树看起来像这样(在服务器和本地主机上):
src
app.js
maps
map1.json
map2.json
routes
index.js
and so on...
服务器在amazon linux上运行。
【问题讨论】:
-
您是否在本地运行
node app.js从$\src\>,而亚马逊实际上是否运行node src\app.js?因为那会导致目录位置不匹配。简单检查:在 app.js 的开头记录process.cwd()报告的内容,这样你就知道它实际上用完了哪个目录 -
@Mike'Pomax'Kamermans 男人,爱你,想通了。万分感谢。在本地,我直接从带有 app.js 的目录和服务器上的目录启动它。已修复并且现在可以完美运行。如果需要,请发布答案。 :)
-
完成,还有一些关于如何强制您成功的方法,将哪个目录视为活动目录。
标签: javascript node.js fs