簡體   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