繁体   English   中英

从node.js向PHP发送请求,返回一个数组

[英]Send request from node.js to PHP, returning an array

我有一个要访问的SQL表,名为“ name_scraper”,并检索设置范围之间的数据,然后将该结果数组返回到我的node.js文件中以供使用。 本质上,Node js请求,php $ _GET [''],mysqli_query,然后呢?

这是我的节点js代码来联系php文件

var request = require('request');
var http = require('http');

    var post_options = {
        host: 'localhost',
        path: '/name_request.php?pos1=0&pos2=5',
        method: 'POST',
        headers: {
            'User-Agent': 'Super Agent/0.0.1',
            'Content-Type': 'application/x-www-form-urlencoded',
        }
    }; 
var post_req = http.request(post_options, function (res) {
    res.on('data', function (chunk) {
        console.log('Response: ' + chunk);
        chnk = chunk; 
            console.log("chunk: " +chnk[0]); //random test I did that doesn't work
        });
    });

    post_req.end(); 

现在,上面的代码可用于联系我的php文件,然后将其输出到控制台。

这是我的PHP:

$servername = "localhost"; //localhost 
$username = "root"; 
$password = ""; 
$dbname = "test"; 

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) 
{
    die("Connection failed: " . $conn->connect_error);
}

$start = $_GET['pos1'];
$end =  $_GET['pos2'];

$sql = mysqli_query($conn, "SELECT * FROM name_scraper WHERE ID BETWEEN '$start' AND '$end'");
$array = mysqli_fetch_all($sql);
print_r($array); //can change to specific index and it works fine

?>

总体来说,它设法检索数据,但不以可用形式返回数据,该数组不是返回的数组,而只是响应的一部分。 我需要它以可用形式返回数组,以便可以在每个索引内操作和提取数据。

您应该像下面那样更改输出方法。

$sql = mysqli_query($conn, "SELECT * FROM name_scraper WHERE ID BETWEEN '$start' AND '$end'");
$array = mysqli_fetch_all($sql,MYSQLI_ASSOC); //If you add MYSQLI_ASSOC your output will be better
echo json_encode($array); //That will output an json array

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM