我正在为一个AngularJS前端编写一个web服务(带有node.js),该前端由node.js托管
稍后将通过domain.com/api下的代理提供,因此我不需要JSONP。
出于本地测试目的,我在localhost:80上运行我的AngularJS应用程序,在localhost:3000上运行我的node.js后端。当然我无法查询json请求。容易
在我的设置中没有搞砸的情况下,在本地测试我的主页的最佳设置是什么?
我目前正在开发Windows。如果它更容易,Linux也是一种选择。
是否可以为同一域中的两个应用程序托管表达的简单代理?
答案 0 :(得分:0)
您可以使用hosts文件将domain.com/api设置为localhost。这是在Linux中的/etc/hosts
中完成的,但它也出现在Windows的某个地方。另一件对我有帮助的事情是ssh隧道。例如,您可以将远程端口(运行后端的位置)隧道传送到ssh -L localPort:your.server:remotePort
答案 1 :(得分:0)
这不完全是您所要求的,但最简单的可能是让node.js应用程序同时为AngularJS应用程序提供服务。它非常高效,足以用于开发。
如果是Expressjs应用程序,您只需添加
即可app.use(express['static'](__dirname + "/public"));
在其他路由之前让它在./public /
中查找静态文件如果您的应用程序由模板或构建系统提供,您无法在node.js中轻松复制,那么另一个选项是在某个端口(80或5000或...)上运行nginx,apache或haproxy并将该代理应用于应用程序的当前后端服务器以及API /数据请求的端口3000(node.js应用程序)。
您甚至可以让当前在端口80上运行的服务器执行此操作。
作为最后的想法,您还可以设置node.js应用程序代理到端口80以获取“app files”。
编辑 - 我刚刚意识到你的两个应用都是用node.js编写的。是否可以设置它以便在生产中单独运行它们但在开发中一起运行?将所有真正的功能放在模块中,然后有三个单独的“加载器”启动应用程序,一个一起,然后分别为每个加载器。