【问题标题】:Apache: Execute Javascript files like .php filesApache:执行 .php 文件等 Javascript 文件
【发布时间】:2011-12-13 18:14:29
【问题描述】:

Apache 和 PHP

使用 Apache 的 PHP 非常好用,因为您可以使用随机创建一个 test.php

echo '<h1>Hello World</h1>';

当您访问http://myserver.com/test.php 时,它会显示&lt;h1&gt;Hello World&lt;/h1&gt;

我对 Apache 和 JS 的愿望

我想要的是创建一个文件test.js

console.log('<h1>Hello World</h1>');

当我访问http://myserver.com/test.js 时,它会显示&lt;h1&gt;Hello World&lt;/h1&gt;

目前有什么可能

我发现最近的尝试是http://www.modjs.org/,但它不再维护。

同时我们可以运行 run a NodeJS instance 并通过文件列表模拟 apache 并根据 url 执行 javascript 文件,但这很糟糕......

有人知道这是否可能吗? :)

谢谢!

【问题讨论】:

  • nodeJS 通常是要走的路。
  • @FakeRainBrigand 我希望在通过 Apache 访问文件时“生成”一个 NodeJS 实例。我不想让我制作的每个小脚本都有一个 24/24 运行的 NodeJS 实例。
  • 别这样工作,在node前面用apache做代理

标签: php javascript apache node.js


【解决方案1】:

TeaJS 可能是您正在寻找的 https://code.google.com/p/teajs/ (https://github.com/ondras/TeaJS)。您在 httpd.conf 中包含 mod_js,然后编写 JavaScript 而不是 PHP。

var hello = request.get('hello');

response.write(hello);

它在数据库库、会话处理和 MVC 方面迅速成熟。

【讨论】:

    【解决方案2】:

    你为什么想做这样的事情。 Node 为演示提供了一种更好的生态系统。例如,抓取express 并制作一个简单的演示:

    var app = express.createServer();
    
    app.get('/test.php', function(req, res){
        res.send('<h1>Hello World</h1>');
    });
    
    app.listen(3000);
    

    此外,console.log 不能用于向用户发送代码。使用res 上的方法写信给用户。您可以多次拨打res.send

    【讨论】:

    • 你有什么建议?不能让节点上的 javascript 作为 CGI 运行吗?我不明白为什么不。
    • 啊,我明白了。不,您将需要一些随时运行的进程来响应请求。这可以是生成其他节点实例的节点实例,也可以是 Apache 等其他网络服务器。
    • 这在短期内有效,而我正在编写脚本。但是 1 个月后,该过程将终止,脚本将无法再访问。如果我要进行 20 次测试,我将不得不继续启动 20 个 nodejs 进程。当我想查看 php 文件时,我的 Apache 总是启动并且已经能够调用 PHP。我想对 Javascript 做同样的事情。这会让我的生活更轻松:P
    • 你不应该每次都启动一个新进程。您不会在每次请求 PHP 文件时生成一个新的 Apache 进程,对吧?我猜最好的方法是运行forever,监听文件更改并在每次编辑文件时让它重新启动。
    • Apache 有很多内置实用程序,例如文件列表和 htaccess。我不想用 NodeJS 重建这些。我只是在寻找一种让 Apache 像对待 PHP 文件一样对待 JS 文件的方法。
    【解决方案3】:

    这里还没有提到为 Apache 工作的 CGI 脚本 - node-cgi,http://larsjung.de/node-cgi/ 然后通过 .htaccess 文件分配文件扩展名,通过 node.js 执行

    我能够安装并使其与基本脚本一起使用,但对于具有大量依赖项的文件,它仍然不适合我...

    安装过程很简单(一定要使用 sudo 运行),我只需要在某些脚本中更改 CGI 脚本中的路径(这里的要点 https://gist.github.com/quentar/2f5adfa7046082105efa ),然后它可以与基本文件一起使用,以便它们被执行按节点。

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 2011-07-24
      • 2012-07-13
      • 2016-12-05
      • 2010-09-16
      相关资源
      最近更新 更多