Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将PHP数组传递到NodeJS HTTP服务器?_Javascript_Php_Node.js_Express_Curl - Fatal编程技术网

Javascript 如何将PHP数组传递到NodeJS HTTP服务器?

Javascript 如何将PHP数组传递到NodeJS HTTP服务器?,javascript,php,node.js,express,curl,Javascript,Php,Node.js,Express,Curl,因此,我有一个名为“dbEmails.PHP”的PHP文件,它基本上将MySQL中的所有现有电子邮件写入一个数组: <?php require_once __DIR__ . '../db.php'; $sth = $dbh->query('SELECT email FROM users'); while($row = $sth->fetch(PDO::FETCH_ASSOC)){ $emails[] = $row['email']; } echo json_enc

因此,我有一个名为“dbEmails.PHP”的PHP文件,它基本上将MySQL中的所有现有电子邮件写入一个数组:

<?php
require_once __DIR__ . '../db.php';

$sth = $dbh->query('SELECT email FROM users');

while($row = $sth->fetch(PDO::FETCH_ASSOC)){
    $emails[] = $row['email'];
}

echo json_encode(array($emails));
正如您在代码中看到的,我已经对我的问题进行了注释。我需要将PHP中的
$emails
数组放入JS的
var emails

我搜索了一些,但找不到解决办法。我想我不应该使用AJAX,我对Node一点都不了解

最好的办法是什么

问题2:

当我的数据库中有新的电子邮件条目时,
var电子邮件
会自动更新吗?我想不是。如果它没有更新,那么有人能告诉我如何让我的
var电子邮件保持最新吗?

来自问题1

  • 请使用express.js更新您的nodejs应用程序,好教程>>

  • 你的节点应用程序应该接受post方法

  • 您可以使用curl命令从php调用节点,并将电子邮件数据传递给它,无论是否成功,都可以得到结果

从问题2开始

  • 如果您根据我上面的建议更新YUE节点应用程序,它应该会自动更新

您应该能够找到几个示例,例如如何使用curl向http服务器发送数据
var http        = require('http');
var querystring = require('querystring');

//var emails = array called "emails" from "dbEmails.php"

function accountExists (email) {
  return emails.indexOf(email) > -1;
}

var server = http.createServer(function(req, res) {
  var params = req.url.split('?')[1];
  var data   = querystring.parse(params);
  var email  = data.email;

  res.statusCode = 200;
  res.setHeader("Content-Type", "application/json");
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

  if (accountExists(email)) {
    res.write('""');
  } else {
    res.write('"true"');
  }

  res.end();
});
server.listen(6666);