2017-07-20 68 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]” –