2

我来自微软世界,所以请多多包涵。有人告诉我我可以安装 node.js 并将其用作 Web 服务器而不是 IIS。这是一个非常小的企业应用程序。在 IIS 中,我可以创建虚拟目录并指向网页的位置,一切正常。根据我阅读的很少,我几乎没有问题;

  1. 是否可以将节点 js 作为 Windows 服务或任何其他形式运行以使其永远运行?我确实找到了forever我认为可以使用的包。
  2. 在 IIS 中,我可以创建虚拟目录设置端口,仅此而已,我有自己的网站。

我没有看到任何示例可以在其中使用我有网页的目录,用 java 脚本编写并指向它作为网站运行。所有的例子都有一些类似 server.js 的东西,它运行和路由调用。托管网站并使用 node.js 作为快速 Web 服务器简单运行的另一种方法是什么。

4

4 回答 4

3

有人告诉我我可以安装 node.js 并将其用作 Web 服务器而不是 IIS。

这是真的,但是正如您已经发现的那样,您负责提供 IIS 已经为您做的事情(例如,在重新启动或崩溃时自动重新启动,通过创建虚拟文件夹来托管多个站点等等。)

您确实可以在 Node.js 中解决所有这些问题,并且有几个库可以在每个领域提供帮助。这不是太难,但你需要做一些研究。

您还可以在 IIS 后面运行 Node.js。看看 iisnode http://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html

是否可以将 node js 作为 Windows 服务或任何其他形式运行以使其永远运行?

库 Forever 负责在站点崩溃时重新启动站点……但我不知道您是否可以将其作为 Windows 服务运行。我没试过。

在 IIS 中,我可以创建虚拟目录设置端口,仅此而已,我有自己的网站。

我假设您正在谈论一个提供静态 HTML 文件的网站,对吧?如果是这种情况,那么 Node.js 很容易支持,要么编写自己的 Web 服务器,要么使用 Express.js 提供静态文件。

我没有看到任何示例可以在其中使用我有网页的目录,用 java 脚本编写并指向它作为网站运行。所有的例子都有一些类似 server.js 的东西,它运行和路由调用。

这是一个在 Node.js 中提供纯 HTML 文件的非常简单的示例https://gist.github.com/2573391但是不要在生产中使用它。这只是一个示例,它没有任何类型的错误处理或安全性。

托管网站并使用 node.js 作为快速 Web 服务器简单运行的另一种方法是什么。

正如其他人所说,您应该查看 Express.js http://expressjs.com/它提供了一些您在构建传统网站时很可能需要的基础设施。

于 2012-12-11T15:27:18.513 回答
1

您说您在 IIS 后面运行“非常小的业务应用程序”。除非它是为 Node.js(在 JavaScript 中)编写的,否则它不会工作。

没有指向目录并将其作为网站运行的示例,因为这不是 Node.js 中的工作方式。您编写一个 Node.js 应用程序并拉入一个网络服务器库。

简而言之,在 Node.js 中,您不会将应用程序嵌入到网络服务器中;您将网络服务器嵌入到应用程序中。

于 2012-12-11T10:53:43.290 回答
0

当我使用 node.js 时,我通过代理服务器 nginx 重定向 HTTP 请求。我不知道你是否可以直接将node.js 绑定为HTTP 服务器,但是对于它的价值,nginx 非常好!

于 2012-12-11T10:42:07.817 回答
0

首先,请允许我分享一个介绍。恕我直言,您应该通过添加各种参数来做出这个决定(从 IIS 移动到 nodeJS)。我属于 Java 和 PHP 社区,但我使用 NodeJS 来实现极其具体的实现,其中 NodeJS 执行速度最快(快速 IO、AJAX-JSON 响应等)。由于您具有 Microsoft 背景,因此您应该使用不太舒服的解决方案。

是的,它可以将 NodeJs 作为 Windows 服务运行并且Forever会很好。

是的,您可以创建“虚拟目录”,但通过创建指向您的每个客户网站的符号链接。

我建议好好看看bouncy & express,如果你愿意采取这一步,那么这些包正是你所需要的。

干杯!

于 2012-12-11T11:01:26.577 回答