Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有节点后端的Ember前端-开发实践_Javascript_Ajax_Node.js_Ember.js_Proxy - Fatal编程技术网

Javascript 带有节点后端的Ember前端-开发实践

Javascript 带有节点后端的Ember前端-开发实践,javascript,ajax,node.js,ember.js,proxy,Javascript,Ajax,Node.js,Ember.js,Proxy,我目前正在开发一个带有节点后端的ember前端 在我的ember cli应用程序中,我将.ember cli文件设置为代理对节点的请求: { "proxy": "http://localhost:3000" } 我还必须在contentSecurityPolicy中设置一整套规则,以避免跨站点问题 我使用ember server启动ember,它确实成功地将ajax请求代理到我的节点后端——尽管它也将来自其他库(如facebook)的ajax请求代理到节点(404s失败) 余烬内容由htt

我目前正在开发一个带有节点后端的ember前端

在我的ember cli应用程序中,我将.ember cli文件设置为代理对节点的请求:

{
  "proxy": "http://localhost:3000"
}
我还必须在contentSecurityPolicy中设置一整套规则,以避免跨站点问题

我使用
ember server
启动ember,它确实成功地将ajax请求代理到我的节点后端——尽管它也将来自其他库(如facebook)的ajax请求代理到节点(404s失败)

余烬内容由
http://localhost:4200/

我也有一个静态登录页,直接从我可以通过
http://localhost:3000/home

有没有更好的方法来设置它,让它更像是从一个地址提供所有内容的生产环境?还是我必须在这种孤立的模式下发展


两个应用程序前面的代理可能会起作用,但它仍然需要contentSecurityPolicy,因为从这个角度看,没有什么真正的不同。

在我最新的应用程序中,我一直使用Ember.js作为前端,node.js+express+mongodb作为后端

我正在运行两台服务器—nginx用于端口80上的
/dist
目录(静态文件、图像等),节点服务器用于端口80上的API。I以
/api/v1
(动态请求)开头的代理请求,用于express server:

upstream app_domainName.com {
    server ip.co.me.shere:1234; # port of node.js server running
    keepalive 8;
}

    location /api/v1/ {
            proxy_pass  http://app_domainName.com;

    proxy_next_upstream error timeout invalid_header http_500 http_502
http_503 http_504;
    proxy_redirect off;
    proxy_buffering off;
    proxy_set_header        Host            $host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

我不想通过express server为静态文件提供服务,因为nginx在处理静态文件方面似乎有更好的性能。

当您运行ember Service时,ember会在每次保存文件时不断更新其dist目录

我将ember的dist目录符号链接到我的服务器目录中,然后告诉hapi“/”路由应该以一个基本上是ember的index.html文件副本的视图进行回复,并打开一个到/dist/assets的路由(这是所有ember js代码所在的位置)

在终端中,只需打开两个选项卡,一次运行ember serve,第二次运行服务器


这为服务器端口的所有内容提供服务,每次文件保存都会不断更新。

在您的ember应用程序的根目录中,应该有一个名为dist的目录。您需要将dist文件夹符号链接到服务器的根目录中(或您想要的任何位置,但它必须位于服务器的目录中,而不是在它的外部。)然后,告诉服务器有一个或多个路由指向服务器目录中的dist文件夹。然后,在terminal just run ember serve中,打开第二个terminal选项卡并运行服务器。每次更新ember文件时,dist文件夹都会更新,这意味着服务器目录中的符号链接dist文件夹也会更新。