[英]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.