【问题标题】:Confusion about web-application ports对 Web 应用程序端口的困惑
【发布时间】:2014-02-01 13:49:31
【问题描述】:

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

客户端是用主干编写的 SPA,它使用 Sails 作为服务器。

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

我想在 Sails 中托管这个主干应用程序,而不是在 Sails 之外。 更多细节: 当我启动 Fiddler 时,我看到向 localhost:1337/get/user 发出请求。 我也需要它驻留在端口 80 上。

Backbone 是使用标准编写的。我有 app.js 和 main.js 以及所有常用文件夹(JS、LIBS、CSS)。换句话说,我有 index.html,它有 data-main 使用 require.js...

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

我的 index.html 应该放在哪里???

【问题讨论】:

  • 我看过那个链接。我有 index.html ,它又具有调用 require 的 data-main ,并且在那里触发了 Backbone 魔法......经过大量阅读,似乎我可以在 Sails 的 assets 文件夹下找到那些东西?

标签: javascript node.js backbone.js sails.js


【解决方案1】:

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

1.从 Sails 为您的 index.html 服务

只需将index.html 用作views/layout.ejsviews/home/index.ejs 的组合,它们安装到根/ 以用于默认新创建的Sails 项目。

2。设置包罗万象的路线

config/routes.js 中输入如下内容:

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

  '/:unknownRoute': {
    view: 'home/index'
  }
}

通过这种方式,例如,您将能够在 SPA 中使用简单的一级推送状态路由:/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 或任何其他端口可能会更好。

【讨论】:

  • 所以这意味着,我可以在那里提供我的 index.html 并且它应该可以工作?第二天早上我会先试一试。我会在这里发布结果。
  • 如果您真的想通过 Sails 应用程序提供服务,是的,它会起作用。另一种(更简洁的)方式可能是,例如,将index.html 和资产作为静态文件提供给http://www.whatever.com/ 上的Apache 或Nginx 和http://api.whatever.com/ 上的Sails API。不过,它们都有优点和缺点。
  • 目前我正在使用端口 80 在单独的 Express 上为 Backbone 提供服务,而 Sails 在默认端口 1337 上提供服务……有什么问题吗?
  • 这没有什么问题,只是你可能根本不需要 Node / Express 来提供静态文件,这就是想法。但问题是关于从一个流程(Sails)中提供所有服务,所以这就是这样做的方法。这种方法更容易开发。基于分离的方法更加灵活,尤其是在可扩展性方面。但是您以后可以随时将您的客户端应用程序与 API 分开,只要您不会将其从 assets 文件夹(这是您的主干文件所在的位置)中删除太多。
  • 感谢您的宝贵时间。明天我会先试一试,然后发布结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 2013-10-24
  • 2012-06-11
相关资源
最近更新 更多