nodejs数据库连接
服务器搭建完了,嘿嘿,可以连接数据库了。
// 引入数据库模块 const mysql = require('mysql'); // 拉取配置项 const config = require('./config'); const connection = mysql.createConnection({ host: config.host, user: config.db_user, password: config.db_password, port: config.db_port, database: config.db_name }); // 创建一个 connection connection.connect((err) => { if (err) { console.log('[query] - :' + err); return; } console.log('[connection connect] succeed!'); }); /** * 使用对应数据库 * @param { string } db_name 要切换数据库名称 */ function changeDB(db_name) { // 使用对应sql语句 const sql = 'use ' + db_name; connection.query(sql); // 直接建立连接,省去手动调用 createConnection(); } /** * 建立连接 */ function createConnection() { connection.connect((err) => { if (err) { console.log('[query] - :' + err); return; } console.log('[connection connect] succeed!'); }); } /** * 关闭 connection */ function closeConnection() { connection.end((err) => { if (err) { return; } console.log('[connection end] succeed!'); }); } /** * 查询语句 * @param { string } tableName 表名 */ function selectData(tableName) { const sql = 'select * from ' + tableName; connection.query(sql, (err, rows, fields) => { if (err) { console.log('[query] - :' + err); return; } console.log('The solution is: ', rows); }); } /** * 向表中插入数据 * @param { string } tableName 表名 * @param { string } attrChars 表的全部字段名字符串,逗号','分隔 * @param { string } valueChars 对应字段的值,逗号','分隔 */ function insertData(tableName, attrChars, valueChars) { const sql = 'insert into ' + tableName + '(' + attrChars + ') values(' + valueChars + ')'; connection.query(sql, (error, result) => { if (error) { console.log(error.message); } else { console.log('insert id: ' + result.insertId); } }); } /** * 从表中删除数据 * @param { string } tableName 表名 * @param { string } attr 标志性字段名 * @param { string } value 对应字段的值 */ function deleteData(tableName, attr, value) { const sql = 'delete from ' + tableName + ' where ' + attr + ' = ' + value; connection.query(sql, (error, result) => { if (error) { console.log(error.message); } else { console.log('affectedRows: ' + result.affectedRows); } }); } /** * 更新表中数据 * @param { string } tableName 表名 * @param { string } attr 标志性字段名 * @param { string } attr_value 对应字段的值 * @param { string } key 对应字段的值 * @param { string } key_value 对应字段的值 */ function updateData(tableName, attr, attr_value, key, key_value) { const sql = 'update ' + tableName + ' set ' + attr + ' = ' + attr_value + ' where ' + key + ' = ' + key_value; connection.query(sql, (error, result) => { if (error) { console.log(error.message); } else { console.log('affectedRows: ' + result.affectedRows); } }); }
这里方便其他模块调用,都包成了方法,不够后期肯定是要调整的,先这样放着,后期调整~
module.exports = { host: '127.0.0.1', // 地址 db_name: 'mysql', // 数据库 - 名称 db_user: 'root', // 数据库 - 用户名 db_password: '000000', // 数据库 - 密码 db_port: '3306', // 数据库 - 端口 };
config 文件。
数据库能连接上了,之后就该数据库初始化,数据结构一些的东西咯~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现