我是 js 新手。最近想实现一个功能,页面上有一个获取数据的按钮,页面显示数据后点击访问数据库,数据库和MySQL服务器都是用nodejs搭建的,nodejs怎么写。
XML/HTML 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>get</button>
<!-- show data -->
<div id="res"></div>
</body>
<script src="node_getdata.js"></script>
</html>
JavaScript 代码
var http = require("http");
var mysql = require("mysql");
var conn = mysql.createConnection({
host : "localhost",
user : "root",
password : "",
database : "test"
});
conn.connect();
conn.query("select * from person", function(err,results){
if(err){
console.log(err);
return;
}
console.log("Result", results);
});
最佳答案
您可以使用 Express 框架创建一个 Web 服务器,它看起来像这样(非常简单的示例):
var express = require('express');
var app = express();
var mysql = require('mysql');
var conn = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'test'
});
conn.connect();
app.get('/test', function(request, response){
conn.query('select * from persons', function(error, results){
if ( error ){
response.status(400).send('Error in database operation');
} else {
response.send(results);
}
});
});
app.listen(3000, function () {
console.log('Express server is listening on port 3000');
});
当然,您应该将数据库操作的结果转换为某种 JSON 格式,以便以可读的形式获取它。
然后,如果您想使用纯 Javascript,您可以使用 XMLHhttpRequest
简单地调用您的 REST api。
function getPersons() {
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.onreadystatechange = function() {
if ( xmlHttpRequest.readyState == XMLHttpRequest.DONE && xmlHttpRequest.status == 200 ) {
document.getElementById("persons").innerHTML = xmlHttpRequest.responseText;
}
};
xmlHttpRequest.open('GET', 'http://localhost/test', true);
xmlHttpRequest.send();
}
并且,为了执行 HTTP 调用,您可以使用 onClick
事件定义一个 button
:
<button type='button' onclick='getPersons()'>Get persons!</button>
关于javascript - 如何从sql中获取nodejs的数据并返回json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41977434/