Javascript 使用node.js从服务器获取数据
我想用get方法对node.js进行ajax调用 ajax调用的结果将显示在我调用ajax函数的同一html页面中 这是html代码:Javascript 使用node.js从服务器获取数据,javascript,ajax,html,node.js,Javascript,Ajax,Html,Node.js,我想用get方法对node.js进行ajax调用 ajax调用的结果将显示在我调用ajax函数的同一html页面中 这是html代码: <!DOCTYPE html> <html lang="en"> <head> <title>Sing-in Page</title> <link rel="stylesheet" href="css/style.css"> <script src="//code.jque
<!DOCTYPE html>
<html lang="en">
<head>
<title>Sing-in Page</title>
<link rel="stylesheet" href="css/style.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(function() {
$("#myform").bind('ajax:complete', function() {
// tasks to do
alert('1');
});
});
</script>
</head>
<body>
<form method="get" action="http://localhost:8080/Login" id="myform" class="login">
<p>
<label for="login">Email:</label>
<input type="text" name="login" id="login" value="">
</p>
<p>
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
</p>
<p class="login-submit">
<button type="submit" class="login-button">Login</button>
</p>
<p class="forgot-password"><a href="index.html">Forgot your password?</a></p>
</form>
</body>
</html>
我想从数据库中获取sql查询的结果,您几乎已经得到了它-只需在关闭连接后添加res.send() 在客户端,您可以绑定成功事件
$("#myform").bind('ajax:success', function(result) {
alert(result);
});
如果试图在服务器上触发数据事件,则必须向服务器发送数据,可能需要使用Jquery的post方法,如中所示:
var postSomething = function(){
$.post
(
"http://127.0.0.1:3000/",
{wooo:'wooo'},
function(data)
{
console.log(data);
}
);
}
当发生“数据”事件时,应在响应对象中写入一些数据:
req.on('data', function(sock) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello!!");
});
将HTTP Get发送到服务器:
$.get( "YOUR_URL_HERE/Login", function( data ) {
alert( data );
});
要返回Json结果,可以执行以下操作:
app.get('/Login', function(req, res) {
var result;
pool.getConnection(function(err, connection) {
var sql = 'select count(id) as ok from users where email=\''+req.body.login+'\' and password=\''+req.body.password+'\';';
console.log("query: "+sql);
connection.query( sql, function(err, rows) {
console.log(rows[0].ok);
result = rows[0].ok;
connection.end();
});
});
res.writeHead(200, { 'Content-Type': 'application/json' });
res.json({ status: result })
});
您可以使用以下内容:
app.get('/Login', function(req, res) {
pool.getConnection(function(err, connection) {
var sql = 'select count(id) as ok from users where email=\''+req.body.login+'\' and password=\''+req.body.password+'\';';
console.log("query: "+sql);
connection.query( sql, function(err, rows) {
console.log(rows[0].ok);
connection.end();
var returnData = {};
returnData.message = rows[0].ok;
return res.json(200, returnData);
});
});
});
$.post向服务器发送HTTP post,但其“/Login”函数正在等待HTTP Get。我认为这是错误的,对吗?嗨,在我使用send函数之后,我如何才能在html端获取数据?我的jq myform函数不会向我的任何东西发出警报=(编辑以回答您的问题-绑定ajax:success事件:)
app.get('/Login', function(req, res) {
var result;
pool.getConnection(function(err, connection) {
var sql = 'select count(id) as ok from users where email=\''+req.body.login+'\' and password=\''+req.body.password+'\';';
console.log("query: "+sql);
connection.query( sql, function(err, rows) {
console.log(rows[0].ok);
result = rows[0].ok;
connection.end();
});
});
res.writeHead(200, { 'Content-Type': 'application/json' });
res.json({ status: result })
});
app.get('/Login', function(req, res) {
pool.getConnection(function(err, connection) {
var sql = 'select count(id) as ok from users where email=\''+req.body.login+'\' and password=\''+req.body.password+'\';';
console.log("query: "+sql);
connection.query( sql, function(err, rows) {
console.log(rows[0].ok);
connection.end();
var returnData = {};
returnData.message = rows[0].ok;
return res.json(200, returnData);
});
});
});