2016-07-07 18 views
0

我正在使用nodejs進行web應用程序。在這種情況下,我對使用任何文件進行細微更改時連續觸發命令「npm start」感到沮喪。如何在nodejs中自動調用「npm start」?

問題1:如何在不打開命令提示符的情況下自動調用我的「npm start」有沒有辦法?

問題2:我也想在url中刪除這個端口顯示。

我要像下面的結果,例如:

當前URL:http://localhost:3200/login 預期網址:每次保存代碼變更http://localhost/myprojectname/login

+0

如果您想要在更改代碼後自動運行npm start命令,則有一些模塊可以解決您的問題。像'node-dev'或'superviosr'等等。第二個問題,如果你不想在生產環境中顯示端口,你可以使用nginx來做反向代理,但是如果在開發中,我不會認爲這是必要的。 – kenticny

+0

社區[已經討論過急於提問](http://meta.stackoverflow.com/q/326569/472495),並且已經堅定地解決了它是不可接受的。 – halfer

回答

1

node-dev會自動重新啓動應用程序。用npm install -g node-dev安裝它,然後運行你的應用程序node-dev server.js(或者如果不是server.js,則調用項目的入口點文件)。

對於開發,最簡單的方法就是在URL中使用端口。爲了擺脫它,你需要在端口80上運行你的應用程序,這需要以root身份運行,這是不安全的。有辦法做到這一點(通過ngrok iptables的,nginx的,等等,但多數開發商選擇將只處理地方發展過程中的URL的端口

+0

謝謝彼得。讓我試着安裝這個軟件包。 – daxter

+0

你能告訴我如何上傳我的nodejs網絡應用程序..? – daxter

+0

嗨,彼得我已經安裝了這個軟件包。位不工作。我使用的是「npm start」,但它給出了錯誤 – daxter

0

嘗試nodemon module,Nodemon是一個實用程序,將監視任何改變你的源代碼並自動重啓你的server.Perfect在本地機器上進行開發,你不再需要在每次更改代碼時處理npm start,它會自動重啓服務器,並且會立即反映出更改。

安裝它全球

npm install -g nodemon 

然後嘗試使用npm startnode app.js

nodemon app.js改爲運行你的應用程序。如果你想使用80端口,就應該執行root /管理員權限的應用程序,並確保沒有其他服務在該端口上運行的另一個解決方案是我強烈建議使用nginx服務器反向代理設置。在您的機器上安裝nginx服務器,以下是您可以使用nginx反向代理應用以從url中刪除任何端口號的設置。

server { 
     listen 80; 
     server_name yourdomain.com; 

     location/{ 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header Host $host; 
       proxy_set_header X-NginX-Proxy true; 
       proxy_pass http://localhost:3000/; 
       proxy_redirect http://localhost:3000/ https://$server_name/; 
     } 
} 

希望這可以幫助你。

+0

謝謝Dinesh ...我希望這將是工作。 – daxter

+0

@daxter,太好了,如果你的問題已經解決了,那麼+1帖子。 –