创建数据库在上一篇文章中,我们使用docker创建了一个数据库。这里,我们将直接使用之前创建的数据库启动docker,运行之前的mysql容器,然后登录mysql客户端查看已有的数据库和用户表mysql。前面我们使用mysql自带的客户端连接数据库进行一些操作。在node.js中,我们可以使用npm包mysql来连接mysql数据库。这个包还实现了mysql协议。首先安装依赖,pnpminstallmysql按照文档复制代码并配置参数连接数据库。constmysql=require('mysql');constconnection=mysql.createConnection({host:'127.0.0.1',user:'root',password:'password',database:'jym',port:'2333',});connection.connect();connection.query('SELECT*FROMUsers',function(error,results,fields){if(error)throwerror;console.log('解决方案是:',results[0].solution);});connection.结尾();复制代码运行后出现如下错误,貌似是npm包mysql不支持mysql8导致的。详情请查看这个问题'客户端不支持服务器请求的认证协议;考虑升级mysql客户端',没办法,只能换个npm包试试pnpmuninstallmysqlpnpminstallmysql2复制代码mysql2的语法和mysql基本一样//gettheclientconstmysql=require('mysql2');//创建到数据库的连接constconnection=mysql.createConnection({host:'localhost',user:'root',database:'jym',password:'password'});connection.connect();connection.query('SELECT*FROMuser',function(error,results,fields){if(error)throwerror;console.log('解决方案是:',JSON.stringify(results));});connection.end();复制代码,运行结果如下,可以看到如下数据结果和上面使用mysql客户端查到的结果是一样的。解决方案是:[{"name":"jym","age":"1"},{"name":"jym2","age":"2"},{"name":"jym3","age":"3"},{"name":"jym4","age":"4"}]复制代码通过mysql2包,我们可以使用node.js连接数据库,可以使用一些基本的API直接操作mysql数据库;例如,在上面的代码中,执行了sql语句'SELECT*FROMuser'。除了使用这个基础库,我们还可以使用ORM(objectRelationalMapper)框架连接数据库,直接使用OOP编写模型和方法,ORM框架会帮你生成相应的SQL语句,这样你就可以专注于业务而不是编写SQL语句。这可以使您的代码更加简洁和可维护。目前在nodejs中常用的ORM有prisma、sequlize、typeorm等,下次我们会尝试如何使用ORM连接数据库
