Итак, у меня есть файл PHP с именем «dbEmails.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));
У меня есть HTTP-сервер NodeJS, который используется для проверки того, уже зарегистрирована электронная почта или нет, на странице регистрации. Вот:
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 в var emails
из JS.
Я искал некоторые, но не мог найти решение. Я думаю, что я не должен использовать AJAX, я вообще ничего не знаю о Node.
Что было бы лучшим способом добиться этого?
Вопрос 2:
Будет var emails
обновлять автоматически при появлении новой записи электронной почты в моей базе данных? Я думаю, нет. Если он не обновляется, то может кто-нибудь сказать, пожалуйста, как мне сохранить свои var emails
до настоящего времени?
Из вопроса 1
пожалуйста, обновите ваше приложение nodejs, используя express.js, хороший учебник >> https://scotch.io/tutorials/use-expressjs-to-get-url-and-post-parameters
приложение вашего узла должно принимать метод post
Вы можете вызвать узел из php с помощью команды curl, передать ему данные электронной почты и получить результат, независимо от того, успешен он или нет
Из вопроса 2
Других решений пока нет …