nodejs fs(文件系统)在本地工作但不在服务器上工作
nodejs fs(filesystem) working locally but not on server
我已经为我的服务器准备好了我的脚本,除了一个变量没有加载到服务器上,因为它似乎文件系统在服务器上没有以相同的方式解释路径(Ubuntu 14.04 x64 vmlinuz-3.13.0-57-通用)。当我在 OS X 10.11.1 上本地测试我的服务器时,一切正常,但在服务器上找不到文件。
var jsonHourlyFile = './data/jsonHourly.json';
console.log(jsonHourlyFile);
console.log(fs.existsSync(jsonHourlyFile));
if (fs.existsSync(jsonHourlyFile)) { //Why was this in the function in the first place...?
console.log("loaded JsonHourlyFile")
var jsonHourly = jsonfile.readFileSync(jsonHourlyFile);
} else {
var jsonHourly = JSON;
console.log("jsonHourlyFile not found!")
}
这 Returns 在我的计算机上为真,在服务器上为假。我已经使用 FileZilla 将所有文件正确复制到服务器,并且可以确认它们在那里。
我怀疑这与文件路径有关。虽然我认为使用 ./
将始终指向正确的地图。谁能详细说说?
我必须评论你的最后一句话:
"Though I thought that using ./ will always point to the right map."
这不是真的。 ./
的意思是 "in this directory",即脚本执行的位置。
在你的本地机器上,你说你的脚本在 /Users/me/WebstormProjects/WebTest
中执行,这意味着你的 JSON 文件应该位于 /Users/me/WebstormProjects/WebTest/data/
中。我们知道这是真的,因为脚本可以在您的机器上运行。
现在,在服务器上,您说脚本在 /root/WebTest/bin
中执行。因此,除非该特定目录中有一个 data/
文件夹,其中包含您的 JSON 文件(因此其路径为 /root/WebTest/bin/data/jsonHourly.json
),否则您的程序将不会按预期执行。
有很多方法可以解决这个问题,我不知道哪个是最好的。您只需要确保您的本地计算机和服务器具有正确的文件路径,考虑到两个操作系统不同,这可能会有很大不同。
更多关于 Wikipedia 上的路径。
我已经为我的服务器准备好了我的脚本,除了一个变量没有加载到服务器上,因为它似乎文件系统在服务器上没有以相同的方式解释路径(Ubuntu 14.04 x64 vmlinuz-3.13.0-57-通用)。当我在 OS X 10.11.1 上本地测试我的服务器时,一切正常,但在服务器上找不到文件。
var jsonHourlyFile = './data/jsonHourly.json';
console.log(jsonHourlyFile);
console.log(fs.existsSync(jsonHourlyFile));
if (fs.existsSync(jsonHourlyFile)) { //Why was this in the function in the first place...?
console.log("loaded JsonHourlyFile")
var jsonHourly = jsonfile.readFileSync(jsonHourlyFile);
} else {
var jsonHourly = JSON;
console.log("jsonHourlyFile not found!")
}
这 Returns 在我的计算机上为真,在服务器上为假。我已经使用 FileZilla 将所有文件正确复制到服务器,并且可以确认它们在那里。
我怀疑这与文件路径有关。虽然我认为使用 ./
将始终指向正确的地图。谁能详细说说?
我必须评论你的最后一句话:
"Though I thought that using ./ will always point to the right map."
这不是真的。 ./
的意思是 "in this directory",即脚本执行的位置。
在你的本地机器上,你说你的脚本在 /Users/me/WebstormProjects/WebTest
中执行,这意味着你的 JSON 文件应该位于 /Users/me/WebstormProjects/WebTest/data/
中。我们知道这是真的,因为脚本可以在您的机器上运行。
现在,在服务器上,您说脚本在 /root/WebTest/bin
中执行。因此,除非该特定目录中有一个 data/
文件夹,其中包含您的 JSON 文件(因此其路径为 /root/WebTest/bin/data/jsonHourly.json
),否则您的程序将不会按预期执行。
有很多方法可以解决这个问题,我不知道哪个是最好的。您只需要确保您的本地计算机和服务器具有正确的文件路径,考虑到两个操作系统不同,这可能会有很大不同。
更多关于 Wikipedia 上的路径。