如何使用Node.js连接数据库
创建数据库
在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库
首先启动docker,把之前的mysql容器运行起来
然后登入mysql客户端查看一下现有的数据库,以及user表
image.png
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来连接数据库
相关文章
- Fabric.js 使用纯色遮挡画布(前景色)
- 初识js中的闭包_Js闭包中变量理解
- 如何使用jscythe并通过Node.js的Inspector机制执行任意JS代码
- Node.js连接MySQL数据库实践(node连接mysql)
- 使用JS连接MySQL数据库:实现化繁为简(js连接mysql数据库)
- 创建JS文件:在Linux下实现自动化任务(linux创建js文件)
- 快速在Linux平台上安装Node.js(node安装linux)
- js实现MySQL数据库的快速操作(js操作mysql)
- 使用 JavaScript连接Oracle 数据库(js连接oracle)
- mysqlmacOS下Node.js操作MySQL数据库(macosnodejs)
- 使用JS实现Redis数据读取(js读取redis)
- 使用Node.js实现对MSSQL数据库的连接(node连接 mssql)
- 使用Node操作MSSQL数据库(node使用mssql)
- 利用Node.js封装MSSQL的尝试(node mssql封装)
- 使用js连接Oracle数据库(.js 连接oracle)
- 以CMD命令行操作MySQL数据库 Javascript实现(cmd mysql-js)
- 使用JS技术实现Oracle数据库链接(js 链接 oracle)
- 使用JS操作Oracle数据库探索潜在可能性(js和oracle数据库)
- Oracle中JS的优势让数据库性能提升(oracle中 js)
- js图片向右一张张滚动效果实例代码
- node.js操作mongoDB数据库示例分享