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

 更新时间:2022年12月14日 09:15:00   作者:鱼露  
这篇文章主要为大家介绍了Node.js连接数据库实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

创建数据库

在前面的数据库入门中我们讲解了常用的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连接数据库的资料请关注脚本之家其它相关文章!

相关文章

  • 一文搞懂npm install 意义

    一文搞懂npm install 意义

    我们在安装依赖包的时候,不需要过多的去纠结是使用 -S 还是 -D 呢 ?随便安装到 dependencies 或者 devDependencies 里都行,反正 npm install的时候,都会安装dependencies 和 devDependencies依赖,今天通过本文学习npm install意义,感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • NodeJs中的VM模块详解

    NodeJs中的VM模块详解

    这篇文章主要介绍了NodeJs中的VM模块详解,本文讲解了什么是VM? 、VM模块的runInThisContext、runInThisContext方法等内容,需要的朋友可以参考下
    2015-05-05
  • npm报错:无法将"npm"项识别为cmdlet、函数、脚本文件或可运行程序的名称

    npm报错:无法将"npm"项识别为cmdlet、函数、脚本文件或可运行程序的名称

    这篇文章主要给大家介绍了关于npm报错:无法将"npm"项识别为cmdlet、函数、脚本文件或可运行程序的名称的相关资料,文中将解决的办法介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • import与export在node.js中的使用详解

    import与export在node.js中的使用详解

    本篇文章主要介绍了import与export在node.js中的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Node.js控制器Controller使用教程

    Node.js控制器Controller使用教程

    这篇文章主要介绍了Node.js控制器Controller使用教程,一个控制器的目的是接收应用程序的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有一个以上的路由,不同的路由可以执行不同的动作
    2023-04-04
  • Nodejs express框架一个工程中同时使用ejs模版和jade模版

    Nodejs express框架一个工程中同时使用ejs模版和jade模版

    这篇文章主要介绍了Nodejs express框架一个工程中同时使用ejs模版和jade模版 的相关资料,需要的朋友可以参考下
    2015-12-12
  • Node.JS使用Sequelize操作MySQL的示例代码

    Node.JS使用Sequelize操作MySQL的示例代码

    Node.JS提供了操作数据库的基础接口,本篇文章主要介绍了Node.JS使用Sequelize操作MySQL的示例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-10-10
  • Node.js服务器环境下使用Mock.js拦截AJAX请求的教程

    Node.js服务器环境下使用Mock.js拦截AJAX请求的教程

    Mock.js这个JavaScript库最常见的用法便是被用来拦截AJAX请求,well,这里我们就来看一下Node.js服务器环境下使用Mock.js拦截AJAX请求的教程:
    2016-05-05
  • 详解Node.js包的工程目录与NPM包管理器的使用

    详解Node.js包的工程目录与NPM包管理器的使用

    这篇文章主要介绍了Node.js包的工程目录与NPM包管理器的使用,可以帮助编程者更好地组织Node.js代码文件,需要的朋友可以参考下
    2016-02-02
  • node puppeteer(headless chrome)实现网站登录

    node puppeteer(headless chrome)实现网站登录

    这篇文章主要介绍了node puppeteer(headless chrome)实现网站登录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论