让node.js在pollingLoop中执行local.php文件

Get node.js to execute local .php file inside pollingLoop

本文关键字:执行 local php 文件 pollingLoop node js      更新时间:2023-09-26

简而言之,这里是我的应用程序的用途。

我有一个PHP文件,通过ODBC连接读取数据,并将它们写入本地数据库。

每当在我的node.js,socket.io服务器中处理循环时,这个PHP文件都需要在服务器上运行LOCAL。

我的设置是Apache、PHP 5.5.12和node.js.

我非常确信有一种简单的方法可以做到这一点,但我没有通过遵循其他指南来获得Ajax或类似的东西来在node.js中工作。

应该在其中处理文件的代码如下所示。

var pollingLoop = function () {
    // Update the local database
    // HERE I WANT THE PHP FILE TO EXECUTE
    // Make the database query
    var query = connection.query('SOME LONG SQL QUERY IN HERE'),
        status = []; // this array will contain the result of our db query
    // set up the query listeners
    query
        .on('error', function(err) {
            // Handle error, and 'end' event will be emitted after this as well
            console.log( err );
            updateSockets( err );
        })
        .on('result', function( runningstatus ) {
            // it fills our array looping on each runningstatus row inside the db
            status.push( runningstatus );
        })
        .on('end',function(){
            // loop on itself only if there are sockets still connected
            if(connectionsArray.length) {
                pollingTimer = setTimeout(pollingLoop, POLLING_INTERVAL);
                updateSockets({status:status});
            }
        });
};

我尝试那样做完全不符合轨道吗?

尝试通过shell接口调用php:

var exec = require("child_process").exec;
app.get('/', function(req, res){exec("php index.php", function (error, stdout, stderr) {res.send(stdout);});});

或此链接