创建数据库

在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库

首先启动docker,把之前的mysql容器运行起来

然后登入mysql客户端查看一下现有的数据库,以及user表

mysql

在前面我们已经使用mysql自带的客户端连接数据库进行一些操作,到了node.js中我们可以用mysql这个npm包来连接mysql数据库,这个包也同样实现了mysql协议

首先安装一下依赖,

pnpm install mysql

复制代码

按照文档配置好连接数据库的参数

const mysql = require('mysql');

const connection = mysql.createConnection({

host: '127.0.0.1',

user: 'root',

password: 'password',

database: 'jym',

port: '2333',

});

connection.connect();

connection.query('SELECT * FROM Users', function (error, results, fields) {

if (error) throw error;

console.log('The solution is: ', results[0].solution);

});

connection.end();

复制代码

运行之后出现了下面这个错误,似乎是mysql这个npm包不支持mysql8导致的,具体可以查看这个issue

'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

没办法,只能换一个npm包试试看了

pnpm uninstall mysql

pnpm install mysql2

复制代码

mysql2的语法和mysql那个基本一样

// get the client

const mysql = require('mysql2');

// create the connection to database

const connection = mysql.createConnection({

host: 'localhost',

user: 'root',

database: 'jym',

password: 'password'

});

connection.connect();

connection.query('SELECT * FROM user', function (error, results, fields) {

if (error) throw error;

console.log('The solution is: ', JSON.stringify(results));

});

connection.end();

复制代码

运行结果如下,可以看到下面的数据和上方使用mysql客户端查出来结果一致

The solution is: [{"name":"jym","age":"1"},{"name":"jym2","age":"2"},{"name":"jym3","age":"3"},{"name":"jym4","age":"4"}]

复制代码

通过mysql2这个包,我们就可以用node.js连接数据库了,可以使用一些基础的API来直接操作mysql数据库;比如上面的代码中就执行了'SELECT * FROM user'这个sql语句

除了使用这种基础库之外,我们还可以使用ORM(对象关系映射器)框架来连接数据库,直接用OOP的方式来编写模型和方法,ORM框架会帮助你生成对应的sql语句,这样就可以把关注点放在业务上面,而不用编写SQL语句。这可以让你的代码更加简洁和可维护

目前在nodejs中常用的ORM有prisma,sequlize,typeorm等等,下回我们就来尝试一下如何用ORM来连接数据库

作者:鱼露

链接:https://juejin.cn/post/7176269086698487864

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如何使用Node.js连接数据库相关推荐

  1. Node.js连接数据库 实现注册、登录、判断注册

    Node.js连接数据库实现注册,登录,在登录时检测账号是否进行注册. 准备工作 创建文件夹 此创建文件夹可以不是使用Vue-cli进行创建,只是简单创建文件夹便可. 使用npm进行mysql插件的安 ...

  2. node.js学习day03 通过node.js连接数据库实现增删改查

    通过node.js连接mysql数据库实现增删改查 1. npm i mysql 导入mysql模块 2.熟悉数据库增删改查 3.建立连接 通过mysql.createPool 4.案例 const ...

  3. Node.js 连接数据库

    操作数据库基本步骤 导入数据库文件 CREATE DATABASE `students` ;USE `students`;DROP TABLE IF EXISTS `stu`;CREATE TABLE ...

  4. 唤醒手腕 - 前端服务器端开发 Node.Js 学习笔记(学习中,更新中)

    唤醒手腕 - Node.Js 学习笔记 唤醒手腕个人的学习记录,时间在2021年12月13日 ~ 2021年12月14日,学习方式看官方文档和B站视频,如有错误或者代码问题的地方,欢迎C站大佬能够帮忙 ...

  5. Node.js MySQL连接数据库 Error: Cannot enqueue Handshake after invoking quit.

    Node.js使用MySQL开发登录功能时,第一次登录有效,但第二次登录报错: Error: Cannot enqueue Handshake after already enqueuing a Ha ...

  6. node.js(node.js+mongoose小案例)_实现简单的注册登录退出

    一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以 ...

  7. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  8. node.js中对 mysql 进行增删改查等操作和async,await处理

    要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...

  9. Node.js实现简易爬虫

    为什么选择利用node来写爬虫呢?就是因为cheerio这个库,全兼容jQuery语法,熟悉的话用起来真真是爽 依赖选择 cheerio: Node.js 版的jQuery http:封装了一个HTP ...

最新文章

  1. python requests 爬取数据
  2. python3 json.dump乱码问题
  3. SpringBoot AutoConfiguration魔术如何工作?
  4. python成绩转换、百分制到五分制_设计一个程序,将从键盘上输入的百分制成绩转换成对应的五分制成绩并输出。90分以上为A,80~90分为B,...
  5. Android5.0新控件
  6. 如何判断基因组的重复区域_利用宏基因组数据组装巨病毒基因组的优势与限制...
  7. centos7默认字体_CentOS7终端的分辨率和字体修改
  8. 大数据中心周边辐射大吗_“一部手机读云南”上线 力争建成国家方志大数据中心西南中心...
  9. js正则表达式截取字符串中的数字(不包括正负号)
  10. 传奇SF专用DBC2000数据库系统安装教程
  11. u盘维护系统 linux,制作绝对pe+puppy U盘维护系统双系统(以下方法也可制作archlinux U盘安装)...
  12. Scrum:官僚者们的游戏
  13. 2014-2015年开发的机器人仿真测试平台
  14. 快速学习Java8新特性第七讲——Optional类
  15. Linux学习笔记(九)
  16. 新麦机械冲刺深交所:年营收9.7亿 谢氏家族持股23%
  17. 《调色师手册:电影和视频调色专业技法(第2版)》——调色所需的其他硬件...
  18. C语言的文件读取与写入操作
  19. [数据结构]数据结构简介和顺序表
  20. 王维:送綦毋潜落第还乡

热门文章

  1. Python识别验证码----数美图标点选
  2. 魔兽世界怎么找回以前的服务器,魔兽世界怀旧服无法连接世界服务器怎么办?...
  3. java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署
  4. PHP-laravel框架学习笔记
  5. Android Studio 简易计算机源码
  6. Android抓包指南①: 使用Fiddler抓HTTP/HTTPS包
  7. 构建嵌入式系统软件开发环境-VMware的安装及搭建嵌入式Linux开发环境
  8. javascript之模拟滚动条
  9. 解决Altium Designer许可(license)授权紧张的问题
  10. 访问jersey生存的wadl文件