雲筆記開發記錄二:node-webkit 如何啟動 express(更準確說是MEANJS) 項目?

來源:互聯網
上載者:User

標籤:https   join   tar   .com   對象   引入   cli   src   node   

node-webkit 如何啟動 express(更準確說是MEANJS) 項目?

一般網上都是教你node-webkit從一個html檔案啟動起來的~當我們是用一個express項目讓node-webkit啟動的話,就很少有人寫到過~ 

所以,我將在這裡記下我是如何讓node-webkit啟動一個express服務的!

參考官方資料: 
https://github.com/nwjs/nw.js/wiki/NW.js-use-express-and-similar-web-frameworks

從官方文檔來看,貌似只需要將 main 屬性配置成一個url, node-main 配置成express服務啟動的指令碼就行了~ 
代碼如下所示:

{ ...    "node-main":"./app/server.js",    "main": "http://localhost:3000", ...}

上面的代碼是node-webkit項目的 package.json檔案(不是node的package.json),其中 node-main 是我們 express 的啟動指令碼,main是我們啟動express後,node-webkit將會訪問的第一個頁面。

 

恩,這樣子配置完是不是就可以了呢? 
我們試著啟動一下~我們就會發現,服務並沒啟動!!! 

奇怪~服務怎麼沒啟動起來呢? 
我們試著用終端來啟動下該express項目,看看是不是express項目配置有問題導致的。 
如: 

居然報錯說沒找到 E:\webstormWorkspace\cnote\config\assets\default 模組~ 
仔細的看了下上面報錯的路徑地址~咦? 

 

我的路徑不應該是:E:\webstormWorkspace\cnote \app \config\assets\default ? 

路徑中怎麼會少了app該目錄呢? 
突然想起來,當node-webkit啟動我的cnote項目的時候,它是從cnote目錄開始的,那麼nodejs的全域process.cwd()返回的工作目錄地址就是E:\webstormWorkspace\cnote;然後,我們看下剛才報錯的檔案,發現該檔案使用了很多 process.cwd()

 

 

中某部分代碼:path.join(process.cwd(), ‘modules/*/client/‘),因為我現在可以知道,我們當前的cnote項目中的全域 process.cwd() 返回的結果是:E:\webstormWorkspace\cnote,而不是 E:\webstormWorkspace\cnote\app,所以,導致那些引入的檔案路徑都錯了~ 
既然知道了問題,那我們就找方法解決這個問題。 
全域對象 process 提供了process.chdir(directory),這個方法將會改變我們項目的當前工作目錄,也就是說我們跟nodejs說:“嘿,我們的工作目錄不是那個,是這個…~”。

process 參考資料: 
https://nodejs.org/api/process.html#process_process_chdir_directory

我們只需要在調用process.cwd()方法前,用process.chdir(directory)將當前工作目錄修改~ 
如: 

 

然後,我們再次執行下startCnote.bat指令碼, 

 

探索服務正常啟動了~

 

 

雲筆記開發記錄二:node-webkit 如何啟動 express(更準確說是MEANJS) 項目?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.