在Windows上运行但不在Linux上运行的NodeJS Javascript片段代码

时间:2019-02-12 19:42:57

标签: javascript node.js linux

我对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"

3 个答案:

答案 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%确信您会找到适合您的用例的方法