Node.js连接数据库实现过程详解

目录
  • 创建数据库
  • mysql

创建数据库

在前面的数据库入门中我们讲解了常用的sql语法以及实战,接下来我们来介绍一下如何在nodejs中使用数据库

在前面的文章中我们有手把手使用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来连接数据库

以上就是Node.js连接数据库实现过程详解的详细内容,更多关于Node.js连接数据库的资料请关注我们其它相关文章!

(0)

相关推荐

  • Node服务端实战之操作数据库示例详解

    目录 连接数据库 insert语句 简化新增sql update语句 delete语句 连接数据库 本系列是使用node作为服务器开发的操作过程记录,记录一下主要的内容并且整理过程的脉络,以初学者的方式将学习内容记录下来,从0到1逐步的学习node,教程使用过程中用到的是基于express的node框架. const mysql = require('mysql') const db = mysql.createPool({ host: 'localhost', user: 'root', pa

  • node连接MySQL数据库的3种方式总结

    目录 1.使用mysql包的提供的接口进行连接 2.建立数据库连接池 总结 以下我们将说明node连接数据库的三种方式,并进行利弊说明,以挑选出最适合项目的连接方式. 1.使用mysql包的提供的接口进行连接 例如: connection.query('SELECT * FROM users WHERE id = ?', ['123'], function(err, rows) { if (err) { // error } else { for (let row in rows) { proc

  • Vue项目通过node连接MySQL数据库并实现增删改查操作的过程详解

    目录 Vue项目通过node连接MySQL数据库 1.创建Vue项目 2.下载安装需要的插件 3.在项目中创建server文件夹,用于搭建本地服务器 4.Vue项目访问接口获取数据 数据表的增删改查操作 1.服务器配置 2.前端配置 页面样式 总结 Vue项目通过node连接MySQL数据库 1.创建Vue项目 vue create 项目名 Vue项目创建的详细步骤,有需要的可移步这里 2.下载安装需要的插件 下载express npm install express 下载cors,用于处理接口

  • node基于express框架操作Mysql数据库的步骤

    目录 一.在express项目中操作数据库的步骤 1.安装mysql模块 2.配置mysql模块 3.测试mysql模块能否正常工作 4.查询数据库数据 5.向数据库插入数据 6.更新数据库数据 7.更新数据库数据 8.删除数据库信息的标记删除 一.在express项目中操作数据库的步骤 ①安装操作 MySQL 数据库的第三方模块(mysql) ②通过mysql模块连接到MySQL 数据库 ③通过 mysql模块执行SQL语句 1.安装mysql模块 mysql模块是托管于npm 上的第三方模块

  • nodejs中关于mysql数据库的操作

    目录 基本概念 为什么要有数据库 什么是数据库 数据库的分类 数据库中基本术语 数据库的可视化操作(创建数据库.创建表) 数据类型(部分) 数据库的常见命令 数据库相关 表相关 插入数据 修改数据 删除数据 查询数据 条件查询 导入和导出数据库脚本 node操作mysql 基本使用 查询语句 插入语句 修改语句 删除语句 db模块封装 基本概念 为什么要有数据库 没有数据库,我们的数据都是存储在文件当中的,那么文件存储数据的缺点有: 文件的安全性问题. 文件不利于查询和对数据的管理. 文件不利于

  • Node.js连接数据库实现过程详解

    目录 创建数据库 mysql 创建数据库 在前面的数据库入门中我们讲解了常用的sql语法以及实战,接下来我们来介绍一下如何在nodejs中使用数据库 在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库 首先启动docker,把之前的mysql容器运行起来 然后登入mysql客户端查看一下现有的数据库,以及user表 mysql 在前面我们已经使用mysql自带的客户端连接数据库进行一些操作, 到了node.js中我们可以用mysql这个npm包来连接mysql数

  • 卸载安装Node.js与npm过程详解

    下面记录一下在本地 Windwos 环境用 vagrant 搭建的虚拟机(Homestaead)和生产环境阿里云 CentOS 系统安装 Node.js 的步骤,以及 npm 安装依赖的不同之处. 使用源码编译的方式安装 node.js.首先将机子上的 Node.js 卸载,我直接贴上 Stack Overflow 上提供的步骤: 1.卸载 npm 和 Node.js 先卸载 npm,命令是:sudo npm uninstall npm -g,然后卸载 Node.js. Running whic

  • 基于node.js之调试器详解

    1.在命令行窗口中,可以使用"node debug" 命令来启用调试器,代码如下: node debug<需要被执行的脚本文件名>接下来根据一个实例进行学习调试过程: 编写app.js文件进行调试: console.log('hello,word') function foo(){ console.log('hello,foo') return 100; } var bar = 'This is a pen'; var http = require('http') var

  • node.js环境搭建图文详解

    身为一名Java开发者对前端充满无限的好奇,于是开始踏入前端的领地.要想先学习,搭建环境是必备,所以整理一篇node.js环境搭建教程. Node.js 是一个让 JavaScript 运行在服务端的开发平台 官网https://nodejs.org 下载 下载地址https://nodejs.org/en/download/ 本次下载LTS长期支持版,.zip解压版本(当然也可以使用安装版.msi),点击右侧[64-bit]即可下载. 解压 解压到自己所要存放的文件夹中,如图: 解压完成后会有

  • Node.js Domain 模块实例详解

    Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常. Domain 模块可分为隐式绑定和显式绑定: 隐式绑定: 把在domain上下文中定义的变量,自动绑定到domain对象 显式绑定: 把不是在domain上下文中定义的变量,以代码的方式绑定到domain对象 创建domain.js,代码如下: var eventEmitter=require("events").EventEmitter; var domain=require(

  • 快速使用node.js进行web开发详解

    首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这是一个比较好的学习模式和过程.由于这本书是2012年出的,书中的一个web教学项目是开发一个微博.从2012到现在,node.js及其生态环境发生了很大改变,所以关于该书的学习如果照着书本显然是过于陈旧的.到目前为止,node.js的web开发框架已经升级到了Express4.12.1,对于Mong

  • Windows系统下安装Node.js的步骤图文详解

    前言 随着近日Paypal和Netflix宣告 迁移到Node.js, 服务器端Javascript平台已经证明其自身在企业领域的价值. 这对于Node来说是一小步,对于Javascript而言却是一大跨越啊! 来自.NET, Java, PHP, Ruby on Rails和更多技术领域的程序员, 所有游走于服务器端的编码者都会聚集到这个平台上. 作为像 Yahoo, Walmart, 和 Oracle 这样的大玩家入局,, Node 正在甩掉其一直就存在的不成熟和不稳定的坏名声. 在这篇文章

  • node.js http模块概念详解

    目录 node.js-http模块 服务器相关概念 什么是 http 模块 http模块的作用 创建最基本的web服务器 创建web 服务器的步骤 req请求对象 res 响应对象 中文乱码问题 node.js-http模块 服务器相关概念什么是 http 模块. 服务器相关概念 IP地址IP地址:是互联网设备的唯一标识.只有在知道对方 IP 地址的前提下,才能与对应的电脑之间进行数据通信. IPV4:点分十进制表示(32位) 192.168.101.15IPV6:采用冒号十六进制表示(128位

  • Node.JS文件系统解析实例详解

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). var fs = require('fs') fs.readFile( 'a.txt','utf-8', function (err,data) { if( err ) { console.error(err) }else{ console.log( "not aynsc===>

  • node.js 中间件express-session使用详解

    本文介绍的关于node.js中间件express-session的相关内容,分享出来供大家从参考学习,下面来一起看看详细的介绍: 一.为什么使用session? session运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存. 当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截. session可以和Redis或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车)丢失. 二.session的工作流程: 当浏览器访问服务器并发送第一次请

随机推荐