【问题标题】:How to pass PHP array to NodeJS HTTP server?如何将 PHP 数组传递给 NodeJS HTTP 服务器?
【发布时间】:2016-07-01 12:20:48
【问题描述】:

所以我有一个名为“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);

正如您在代码中看到的那样,我已经评论了我的问题到底是什么。我需要将 $emails 数组从 PHP 转换为 JS 的 var emails

我搜索了一些但找不到解决方案。我认为我不应该使用 AJAX,我对 Node 一点也不了解。

最好的方法是什么?

问题 2:

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

【问题讨论】:

  • 你应该可以找到几个例子,如何使用 curl 向 http 服务器发送数据,例如 1 2

标签: javascript php node.js express curl


【解决方案1】:

从问题 1,

从问题 2,

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2014-05-02
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多