我对NodeJS和Java脚本特别陌生,并且创建了一个小型Web应用程序。我的代码在Windows计算机上无缝运行。但是,当我尝试在Linux VM上运行它时,它阻塞了一点,没有错误或引发异常。
我发现有一行实际上在Linux中造成了阻塞,将其注释掉,然后代码从那里继续限制应用程序的功能,这在很大程度上取决于该行以及其他独立部分的功能。
....
var localEntry = entry.split('\\')
if(!localEntry)
localEntry = entry.split('/')
localEntry = localEntry[localEntry.length -1]
this.scripts[extn][localEntry].day1Vars = searchedVars[entry].day1Vars
}
我很困惑,因为只有一行代码,所以发现完全相同的代码无缝地在Windows机器上运行并在Linux vm上阻塞了,我不知道这怎么可能?负责这种行为的行是:
this.scripts[extn][localEntry].day1Vars = searchedVars[entry].day1Vars
我的期望是Node.js上的代码是独立于平台的,并且引起这种差异的代码行的想法令人反感。 我在Windows 10和RHEL 6.9中都使用了8GB的内存。
如果我缺少某些东西或出了什么问题,有人可以指导我吗? 任何帮助将不胜感激。
按照此处的要求,示例值(在Windows上):
entry : "d:\NodeProjects\BApp\uploads\bp\bp\scripts\nodejs\set-nodejs-root.sh"
localEntry : "set-nodejs-root.sh"
答案 0 :(得分:0)
在Windows下指定路径时,必须使用“ \”
Linux使用“ /”作为路径
答案 1 :(得分:0)
最好检查一下环境。 例如,您应该拆分为:
ubuntu .split("/")
windows .split("\\")
答案 2 :(得分:0)
好像您正在使用路径,此处的最佳建议是使用路径模块为您处理这些路由:
https://nodejs.org/api/path.html
以下是有关如何处理两个系统的路由的很好的解释:
https://nodejs.org/api/path.html#path_windows_vs_posix
我会使用
https://nodejs.org/api/path.html#path_path_parse_path
要正确解析路径或需要构造路径,可以使用:
https://nodejs.org/api/path.html#path_path_join_paths
检查所有不同的选项,我99%确信您会找到适合您的用例的方法