关于networking应用程序端口的困惑

我有一个已经深入开发的项目,并且有一个端口的问题。

客户是使用Sails作为服务器的骨干networking。

问题在于客户端在80端口上运行Express,而Sails在1337上运行。

我想在Sails中主持这个骨干应用程序,而不是帆船的外部。 更多的细节:当我发射提琴手时,我看到对localhost:1337 / get / user的请求。 我需要它也驻留在80端口。

骨干是使用标准编写的。 我有所有的常见文件夹(JS,LIBS,CSS)的app.js和main.js。 换句话说,我有index.html数据主要使用require.js …

我没有问题在单独的node.js中运行客户端…如何在Sails.js中运行它?

我在哪里把我的index.html?

尝试将index.html作为静态文件提供服务将不起作用。 相反,请尝试以下操作:

1.从Sails提供你的index.html

只需将index.html作为views/layout.ejsviews/home/index.ejs ,将其挂载到根目录/用于默认新创build的Sails项目。

2.build立一个全面的路线

config/routes.js放入这样的东西:

 module.exports.routes = { '/': { view: 'home/index' }, '/:unknownRoute': { view: 'home/index' } } 

这样,你就可以在你的SPA中使用简单的一级pushstate路由:像/products/news这样的路由仍然会给你你的index.html (如果你使用的是更复杂的东西,想用Sails航线玩一点点)。

3.用前缀为您的API提供服务

在你的config/controllers.js ,例如:

 module.exports.controllers = { ... prefix: '/api', ... } 

这将使您可以使用前缀来提供API,并提供/api/products (JSON API)和/products (您的SPA)路线。

4.使用任何你想要的端口

您可以通过config/local.js更改默认端口,甚至可以更改为80 (当然,如果您还没有其他任何东西在80运行)。

在生产中,例如,用Nginx代理默认的Sails或任何其他的端口可能是一个更好的主意。