热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Node.js的mysql数据库操作

连接mysql数据库varmysqlrequire('mysql');varconnectionmysql.createConnection({host:'

连接mysql数据库

var mysql = require('mysql');
var cOnnection= mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
});
connection.connect(function(err){
if(err){
cosnole.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
//关闭连接
connection.end(function(err){
if(err){
console.log('关闭mysql数据库操作失败');
}else{
console.log('关闭mysql数据库操作成功');
}
})
}
})
与数据库服务器之间的连接丢失时的处理

var mysql = require('mysql');
var cOnnection= mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
});
function connect(){
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
}
})
}
//通过监听connection对象的error事件来处理与数据库服务器连接中断时的操作(断电、崩溃、重启等)
connection.on('error',function(err){
if(err.code === 'PROTOCOL_CONNECTION_LOST'){
console.log('与mysql数据库之间的连接丢失');
//5秒后重新尝试连接数据库
setTimeout(function(){
connect();
},5000);
}else{
throw err;
}
})
connect();
在mysql数据库中插入与查询数据
var mysql = require('mysql');
var cOnnection= mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
});
function connect(){
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
//使用connection对象的query方法统一执行数据的增删改查
//使用三个参数,第一个为sql语句,第二个为数据(数组或者对象),第三个为执行后的回调函数(err为执行失败时触发的错误对象,result为执行结果)
connection.query('insert into admin set ?',{username:'Jack',password:'456'},function(err,result){
if(err){
console.log('插入数据失败');
}else{
//在一个具有自增主键字段的数据表中插入一条数据后,可以使用result.insertId来获取该数据的主键值
console.log(result.insertId);
//在查询语句中,使用??占位符来为sql标识符使用参数
connection.query('select * from ??',['admin'],function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log(result);
connection.end();
}
})
}
})
}
})
}
connect();
mysql增删改查操作

var mysql = require('mysql');
var table = 'admin';//表名
var cOnnection= mysql.createConnection({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : '',
multipleStatements : true//默认是禁止多语句操作,把该属性设置为true,即可执行多条语句
});
connection.connect(function(err){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
//插入数据
insertData();
}
});
function insertData(){
var sqlStr = "";
//插入多条sql语句
//为了防止sql注入攻击,使用connection对象的escape方法对用户输入的数据进行escape编码处理
//有些情况下,可能由用户决定使用某个sql标识符(数据库名、数据表名、字段名等),这时候,使用escapeId方法编码处理该标识符
for(var i=0;i<3;i++){
sqlStr += 'insert into ' + table + '(username,password) values(' + connection.escape('用户名' + i.toString()) + ',' + connection.escape('密码' + i.toString()) + ');';
}
connection.query(sqlStr,function(err,result){
if(err){
console.log('插入数据失败');
}else{
console.log('插入数据成功');
//更新数据
updateData();
}
})
}
function updateData(){
connection.query('update ' + table + ' set password = ? where username = ?',['新的密码','用户名1'],function(err,result){
if(err){
console.log('更新数据失败');
}else{
console.log('更新数据成功');
//删除数据
deleteData();
}
})
}
function deleteData(){
connection.query('delete from ' + table + ' where username = ?',['用户名2'],function(err,result){
if(err){
console.log('删除数据失败');
}else{
console.log('删除数据成功');
//查询数据
queryData();
}
})
}
function queryData(){
connection.query('select * from ' + table,function(err,result){
if(err){
console.log('查询数据失败');
}else{
console.log('查询数据成功');
console.log(result);
//断开连接
connection.end();
}
})
}
Node.js mysql连接参数

https://cnodejs.org/topic/53f834248f44dfa351525511


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
author-avatar
bakurei_492
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有