我想像调用 php 一样调用 node.js 脚本,只需使用它们的 url 即可。

我主要是一名 js 程序员,所以如果我完全放弃 php 并使用 Node 来进行服务器端脚本编写,那就太棒了。

但到目前为止我看到的大部分教程都涉及创建服务器等......

我只想以旧方式调用脚本,例如 www.mysite.com/login.js 而不是 www.mysite.com/login.php

一旦调用,脚本应该返回一个用于渲染的页面,或者简单地返回 json 或其他用于 ajax 调用的文本。

是否可以?

有帮助吗?

解决方案

还有另一种可能性,类似于上面提到的 CGI 方法,但在 Node.js 中使用支持 FastCGI 的模块(https://github.com/samcday/node-fastcgi-application),这将允许 Apache 与之对话。

它实际上混合了两种风格,因此 Node 程序由 Apache 自动启动,但只要有请求需要处理,它就会一直存在。您只需设置一条规则,将所需的页面重定向到dispatch.njs 脚本,该脚本已使用.htaccess 中的AddType 作为节点脚本添加,该脚本启动并处理stdin 上的请求,并将结果发送到stdout。但你仍然需要express提供的路由,因为它只查看HTTP_REQUEST_URI来确定你想要哪个页面。

另一种选择是设置 Node 侦听某个端口,并在 Apache 与某个签名匹配(如以 .njs 结尾)时代理对它的请求。

其他提示

但是,到目前为止,我看到的大多数教程都涉及创建服务器等...

我只想以旧的方式调用脚本,例如www.mysite.com/login.js代替www.mysite.com/login.php

这就是Node.js的工作方式。您创建服务器。使用PHP,教程的第一步是安装和设置Apache(创建服务器)。

用PHP术语等待您的问题将是

我可以在不安装apache/nginx/其他Web服务器的情况下运行PHP脚本

您不能(我相信最近的版本或将来的版本包括烤制的Web服务器,就像Node.js一样!)

您需要安装node.js,您需要告诉节点运行Web服务器

但是您可以使用 Expressjs 为了简化和熟悉的设置。然后您可以打电话 express 在命令行上以踩下服务器。

您仍然必须安装node.js(和npm)

Node.js和PHP是两件事。

Node.js是“事件驱动的I/O服务器端JavaScript环境”。当它功能功能时,JavaScript不会作为脚本语言运行,就像Ruby或Python一样处理。您启动服务器,并运行代码。

但是,PHP是在Web服务器上作为脚本语言运行的,因为Web服务器上安装了PHP处理器模块。因此,您可以通过.php扩展名直接运行PHP脚本,因为Apache Server配置为将.php文件解释为脚本。

换句话说,如果没有大量的技巧,您不可能做的事情是不可能的 使用node.js.

但是,如果您想只使用JavaScript 反而 PHP,我会检查 JS-CGI, ,这使您可以将JavaScript用作CGI扩展。

您可以使用CGI。这样的事情:

#!/usr/local/bin/node

var sys=require("sys");
sys.puts("Content-type: text/html\n");
sys.puts("Hello World!<br/>\n");
var argstr="";
for(var i in process.env){
  argstr+=i+": " + process.env[i] + "<br/>\n";
}
sys.puts("args: "+ argstr +"<br/>\n");

就像perl/python /../ ..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top