繁体   English   中英

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

[英]NodeJS Javascript piece code running on Windows but not on Linux

我对NodeJS和Javascript特别陌生,并且创建了一个小型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的ram。

如果我缺少某些东西或出了什么问题,可以有人指导我吗? 任何帮助是极大的赞赏。

根据此人的要求,示例值(在Windows上):

entry : "d:\NodeProjects\BApp\uploads\bp\bp\scripts\nodejs\set-nodejs-root.sh"
localEntry : "set-nodejs-root.sh"

在Windows下指定路径时,必须使用“ \\”
Linux使用“ /”作为路径

最好检查一下环境。 例如,您应该拆分为:

ubuntu .split("/")

Windows .split("\\\\")

看起来您正在使用路径,此处的最佳建议是使用path模块为您处理这些路由:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM