Nodejs Guides

Posted Merrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs Guides相关的知识,希望对你有一定的参考价值。

阔别的nodejs系列。这次把看过的东西前端实践一番。

1.实现原生ajax的get和post请求;

2.nodejs服务端接收数据;

3.连接mysql数据库,查询并发送数据给前端。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<div class="container">
    <p>直接打开页面请求</p>
    <div class="btn">获取数据get</div>
    <div id="get"></div>
    <div class="btn">获取数据post</div>
    <div id="post"></div>
</div>
</body>
<script type="text/javascript">
    function GetData(str, json) {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", `http://localhost:8080/getName?name=${str.name}&tel=${str.tel}`, true);
        xhr.send();
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    var data = xhr.responseText;
                    if (json) {
                        data = JSON.parse(data);
                    }
                    document.getElementById("get").innerHTML = xhr.responseText;
                }
            }
        };
    }

    function PostData(str, json) {
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "http://localhost:8080/getName", true);
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xhr.send(str);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    var data = xhr.responseText;
                    if (json) {
                        data = JSON.parse(data);
                    }
                    document.getElementById("post").innerHTML = xhr.responseText;
                }
            }
        };
    }


    document.getElementsByClassName("btn")[0].onclick = function () {
        var str = {"name": "yourName", "tel": "yourTel"};
        GetData(str, true)
    };
    document.getElementsByClassName("btn")[1].onclick = function () {
        var str = {"name": "yourName", "tel": "yourTel"};
        str = `name=${str.name}&tel=${str.tel}`;
        PostData(str)
    };

</script>

</html>

index.js

var http = require(\'http\');
var urlFn = require(\'url\');
var querystring = require(\'querystring\');
var hostName = \'127.0.0.1\';
var port = 8080;
var mysql = require(\'mysql\');
var TEST_DATABASE = \'users\';
var TEST_TABLE = \'ceshi\';
var client = mysql.createConnection({
    user: \'root\',
    password: \'123456\'
});
client.connect();
client.query(\'use \' + TEST_DATABASE);

function getName(name, response) {
    client.query(
        \'SELECT * FROM \' + TEST_TABLE + \' where ceshi_name="\' + name + \'";\',
        function selectCb(err, results, fields) {
            if (err) {
                console.log(err)
            }
            if (results) {
                results = JSON.stringify(results);
                response.write(results);
                response.end();
            }
        }
    );
}

var server = http.createServer((request, response) => {
    response.setHeader(\'Content-Type\', \'text/plain\');
    response.setHeader(\'Access-Control-Allow-Origin\', "http://localhost:63342");
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
});
server.on(\'request\', (request, response) => {
    const {method, url} = request;
    const {pathname} = urlFn.parse(url, true);
    request.on(\'error\', (err) => {
        console.error(err);
    });
    if (url.pathname === \'/favicon.ico\') {
        return
    }
    if (method === \'GET\' && pathname === \'/getName\') {
        console.log(method);
        var query = urlFn.parse(url).query;
        query = querystring.parse(query);
        getName(query.name, response);
    }
    if (method === \'POST\' && pathname === \'/getName\') {
        console.log(method);
        var query = \'\';
        request.on(\'data\', function (chunk) {
            query += chunk;
        });

        request.on(\'end\', function () {
            query = querystring.parse(query);
            getName(query.name, response);
        });
    }
});

server.listen(port, hostName, () => {
    console.log(`服务器正在运行http://${hostName}:${port}`)
});

数据库操作

版本 mysql-installer-community-5.7.20.0,安装教程 https://jingyan.baidu.com/article/7e440953d6f0702fc1e2ef61.html

使用command line client - Unicode登录 密码******

use mysql;


show databases;
show tables;

CREATE DATABASE users;

use users;

CREATE TABLE ceshi(
   ceshi_id INT NOT NULL AUTO_INCREMENT,
   ceshi_name VARCHAR(100) NOT NULL,
   PRIMARY KEY (ceshi_id)
   );


INSERT INTO ceshi
    (ceshi_name)
    VALUES
    ("yourName");


select * from users;

select * from ceshi where ceshi_name=yourName

这就是我的nodejs开发敲门砖 

以上是关于Nodejs Guides的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs Guides

Nodejs Guides

text https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/

nodejs常用代码片段

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

javascript 用于在节点#nodejs #javascript内设置react app的代码片段