likes
comments
collection
share

js对话数据库体验:hello-mysql

作者站长头像
站长
· 阅读数 74

js对话数据库体验:hello-mysql

一、写在前面

传闻 JavaScript 已经到了全栈,前后端通吃的地步,今天体验下在 JavaScript、nodejs, 连接 MySQL 数据库查询信息,并通过一个 http 服务展示查询结果的小 demo。

体验 nodejs 中,JavaScript 直接对话数据库的魅力,小 demo,前端人的一大步。

二、过程与思路

1.环境安装和准备

  • ①安装 Node.js, 尽管大部分做过前端工程化项目的人都安装了 node 环境,但检查合适环境的存在仍是必须的。 通过 node -v 可以查看 node 的版本,如果像下面这样,正确展示版本号, 那么 node 就确实证明已经安装了,可以放心继续了。如需要安装 nodejs 的教程,自行搜索引擎检索。

js对话数据库体验:hello-mysql

  • ②安装 mysql 依赖 因为这个 demo,要对话 MySQL 数据库,所以需要安装 mysql 依赖。
// 安装依赖命令
npm install mysql
  • ③安装数据库

既然要体验对话数据库,那得有数据库,本 demo 中使用的是 MySQL 数据库。 安装 MySQL 数据库教程自行按需去搜索引擎检索。

cmd 命令窗口输入以下命令回车键,并输入密码,如果能看到以下信息,那么证明你的 MySQL 服务已经在运行了, 可以放心继续了。

js对话数据库体验:hello-mysql

  • ④在数据库管理系统中,创建库表 demo 中是查询 ry 库的 sys_user 表中的记录,所以得先在数据库管理系统(demo 中是 MySQL)中, 创建库 ry 并在 ry 库下创建表 sys_user,为了测试方便,还得添加几条记录。你可以使用命令做这些, 也可以使用可视化工具处理。可视化工具(例如 Navicat 等)创建库表以及表记录,那非常简单。 如果此前没接触过 sql,那可能会有些麻烦。 (我的工具都是 jetbrains 全家桶,就不推荐了,因为收费,当然俺是正版。)

建库建表添加表记录教程,自行查找。

2.初始化一个工程化项目

在文件夹 nodejs-hello 下,通过 npm init -y 命令初始化一个工程化项目,获得 package.json。

js对话数据库体验:hello-mysql

3.创建 serve-mysql.js 文件

// serve-mysql.js

const mysql = require('mysql'); // 需要额外安装依赖:npm install mysql
const http = require("http"); // 内置的模块功能

// 创建 mysql 连接
const conn = mysql.createConnection({
    host: 'localhost', // 数据库所在的域名或ip
    user: 'root', // 数据库用户账号
    password: '123456', // 数据库账号对应的密码
    database: 'ry' // 数据库名称
});

// 发起连接
conn.connect();

// sql 原句:查询表 sys_user 的记录中的全部字段信息
// * 表示查询全部,通常不建议这么做,应该显示列出需要查询的字段,哪怕这些字段很多
const sql = 'select * from sys_user'
conn.query(sql, (err, results, fields) => {
    // 遇到错误抛出异常
    if (err) throw err;

    // 打印查询结果的第一行记录
    console.log('result =>', results[0]);

    // 打印查询结果的第二行记录
    console.log('result =>', results[1]);

    // 创建一个 http 服务,
    http.createServer(function (request, response) {

        // Send the HTTP header
        // HTTP Status: 200 : OK
        // Content Type: text/plain
        response.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'});

        // 设置 http 请求的响应内容,
        // 获取查询结果的第二行记录的 "user_name" 的值,即是用户名
        const user = results[1]["user_name"] 
        response.end('你好,世界!\n Hello World\n'+user);

        // 监听 3210 端口,即通过 3210 端口访问该 http 服务,将获得请求的响应内容
    }).listen(3210);

    console.log("您可以通过该地址访问服务:" + "http://localhost:3210")
});

conn.end();

4.执行 serve-mysql.js 的文件

在 nodejs-hello 文件夹下,执行 serve-mysql.js 文件,执行命令是: node serve-mysql.js

下面是执行命令相关的截图

js对话数据库体验:hello-mysql

下面是在浏览器访问创建的 http 服务的结果截图 js对话数据库体验:hello-mysql

三、写在后面

环境准备有点多,特别是对于没有后端经验的纯前端来说,可能感到有些麻烦。 但总的来说,使用 JavaScript ”对话“数据库,是一个不错的体验。

前端了解或说具备简单 CRUD 能力可以,真的搞全栈,以我的经验来说,实在吃不消。 前后端分工已成大势,相信分工合作会是长期的趋势,相信将来分工也只会是越来越细,而不会相反。

转载自:https://juejin.cn/post/7103723408688414727
评论
请登录