javascript - 如何从sql中获取nodejs的数据并返回json?

标签 javascript mysql json node.js

我是 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/

相关文章:

mysql - 错误代码 : 1422. 存储函数或触发器中不允许显式或隐式提交

mysql - 如何从 Cloudry Foundry 中的 Sinatra 应用程序内部创建新的 MySQL 数据库?

javascript - 在 PHP 中解析 Javascript 提取

JavaScript - 如何获取文档中的当前选择 'index'

javascript - 可以用生成器函数代替 promise 管理吗?

c# - 如何使 Entity Framework 代码首先序列化属性列表

javascript - Rails json View 转为 javascript 函数

javascript - 从 Firebase 从用户名获取 UID

java "database is locked"SQL异常

ios - 从NSDictionary填充NSArray