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

时间:2016-07-01 12:20:48

标签: 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_encode(array($emails));

我有一个NodeJS 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);

正如您在代码中所看到的,我已经评论了我的问题究竟是什么。我需要从PHP获取$emails数组到JS的var emails

我搜索了一些但无法找到解决方案。我想我不应该使用AJAX,我根本不了解Node。

最好的解决方法是什么?

问题2:

当我的数据库中有新的电子邮件条目时,var emails会自动更新吗?我猜不会。如果它没有更新,那么有人可以告诉我应该如何保持我的var emails最新?

1 个答案:

答案 0 :(得分:0)

问题1,

问题2,

  • 如果您从我上面的建议更新yiue节点应用程序,它应该自动更新