par*_*and 8 javascript php apache node.js
我想要做的事情在理论上很简单,但我无法让它发挥作用.
我写了一个简单的node.js脚本,该脚本使用该request包来异步获取一些数据,解析它并将其作为html吐出.我想将这个脚本集成到我的客户端基于php和apache的网站上,该网站位于共享主机上,并遇到了一些障碍:
node-cgi包,但它对我不起作用.我有关于内部节点方法不存在的错误,我认为这个包已经过时了.所以我已经着手试图简单地从PHP调用节点.我的整个index.php文件是:
<?php
header("Content-Type: text/html");
exec("node beerlist.nd", $output);
echo implode('', $output);
Run Code Online (Sandbox Code Playgroud)
当我php index.php在命令行上执行时,我得到了我期望的输出,但是,当我尝试从浏览器访问它时,我什么都没得到Content-Length: 0.为什么?
我想也许它与我的节点脚本的异步性质有关,但似乎该过程保持活着,直到它完成所有异步调用.那么我的php片段不应该毫无困难地将输出发送到浏览器吗?我在这里错过了什么?
编辑:我的节点脚本的要点是
var req = require('request')
req("http://mywebsite.com", function(err, resp, body) {
var output = // pull some interesting pieces out of the whole body
console.log(output);
});
Run Code Online (Sandbox Code Playgroud)
我的output变量的生成并不是这个问题的核心.相关部分是我request用来进行异步调用并用于console.log输出我的结果......也许这是一个问题?
我想Apache用户不知道是什么node命令.如果我是正确的尝试写在PHP文件中:
<full path to node> beerlist.nd
Run Code Online (Sandbox Code Playgroud)
代替
node beerlist.nd
Run Code Online (Sandbox Code Playgroud)
获取终端中节点运行的完整路径 which node
| 归档时间: |
|
| 查看次数: |
8707 次 |
| 最近记录: |