2017-07-20 69 views
2

我是新的角,我有要求開發一個Web應用程序與Angular4(前)+ REST API使用節點JS(與Ms Sql API連接)。一次運行角4 +節點的API

現在我的困惑是,如果我分別開發這兩個項目或更好,它會更好嗎?

個人而言,我更願意分開開發這兩個項目。

但我使用visual studio代碼作爲我的IDE和visual studio代碼,我一次只能工作一個項目。

我想同時在兩個項目上工作。

有什麼方法/任何其他IDE可以幫助我嗎?或 有什麼辦法在Visual Studio代碼同時運行兩個項目...?(我已經研究了很多爲,但我沒有發現任何有用的解決方案)

任何幫助,將不勝感激

+0

您是否使用[Angular CLI](https://github.com/angular/angular-cli)創建Angular項目? –

+0

是的,我正在使用Angular CLI –

回答

5

Angular CLI具有development proxy configuration option,可用於攔截對開發後端的調用並將其路由到API。這可以讓您獨立完成項目並利用@angular/cli工具。

您會在與angular-cli.json文件相同的級別創建一個名爲proxy.conf.json的文件。比方說,在發展的節點API端口在http://localhost:3000運行,你的API端點所有下路徑「/ API」的proxy.conf.json內容看起來像:

{ 
    "/api": { 
    "target": "http://localhost:3000", 
    "secure": false 
    } 
} 

您可以設置爲根據需要進行很多攔截,在這種情況下,它只會攔截對「/ api」所做的調用,並將它們引導至運行在http://localhost:3000的項目。

這樣,你會需要修改npm start在角app命令的package.json利用代理:

"scripts": { 
    ... 
    "start": "ng serve --proxy-config proxy.conf.json", 
    ... 
}, 

然後你只需要在不同的單獨運行兩個後端和前端命令窗口。您可以使用庫(如concurrently)在開發中使用單個npm start運行多個命令。你會在基本節點API項目像這樣設置你的npm start命令:

"scripts": { 
    "start": "concurrently \"./bin/www\" \"cd public && npm start\"", 
} 

在這個例子中,我的節點(快遞)的應用被激活./bin/www和我的角應用程序位於public文件夾,但這顯然可能是不同的文件夾,具體取決於您的項目結構。如果後端節點api只是單個條目文件"start": "concurrently \"node ./server.js" \"cd public && npm start\"",那麼開始可能會更簡單。

結構示例:

Project 
    server.js (back-end node API) 
    package.json (concurrently library and command added here) 
    public (angular front-end app) 
     src 
     .angular-cli.json 
     package.json (npm start updated to use proxy) 
     proxy.conf.json (proxy configuration goes here) 

希望幫助!

+0

您的解決方案看起來很有前途......讓我試試這個。 –

+0

嘿亞歷克斯,是否有可能,如果我想使用唯一的代理不兼容? –

+0

當我嘗試使用代理服務器調用時,出現錯誤,如「嘗試代理服務器時發生錯誤:localhost:4200/api/[apiFunctionName]」 –