本文说明了nodejs入门教程中连接数据库的方法。分享给大家参考,如下:
参考文章链接:nodejs连接mysql
1.准备工作
nodejs中没有mysql模块,但是在npm中提供了mysql,所以可以使用npm安装mysql
命令:npm安装mysql会生成node_modules文件夹,如图所示
执行后发现报告了一个警告,说没有package.json文件,只有执行NPM init-f-f的命令才会生成这个文件。
2.直接连接到数据库
mysql.createConnection(对象)方法和mysql.createPool(对象)的参数
主机连接到数据库所在的主机名。(默认为: localhost)端口连接端口。(默认为: 3306) localAddress是用于TCP连接的IP地址。(可选)socketPath链接到unix域的路径。使用主机和端口时,此参数被忽略。用户MySQL用户的用户名。MySQL用户的密码。链接到数据库名称的数据库(可选)。字符集连接字符集。(默认值为:‘UTF8 _ GENERAL _ CI’。该值应以大写形式设置!)时区存储本地时间的时区。(默认值:“local”)stringfoobjects是否序列化对象。见第501期。(默认值:“false”)insureauth是否允许旧的身份验证方法连接到数据库实例。(默认值: false)typescast确定列值是否转换为本地JavaScript类型的列值。(默认为: true) queryFormat自定义查询语句格式化功能。supportBigNumbers数据库处理大数(长整数和十进制数)。应该启用它(默认值: false)。bigNumberStrings启用supportbignum成员和大数字字符串,并强制将这些数字作为字符串返回(默认为: false)。dateStrings强制日期类型(时间戳、日期时间、日期)作为字符串而不是javascript Date对象返回。(默认值: false)是否启用调试。(默认值: false) multipleStatements允许在一个查询中传递多个查询语句。(Default: false)标记链接标记。连接到数据库
var MySQL=require(' MySQL ');//调用MySQL模块//创建连接var connection=MySQL . create connection({ host : ' 192 . 168 . 3 . 3 ',//host user3360' root ',//MySQL身份验证用户名password: 'x5 ',//MySQL身份验证用户密码数据库:' das on _ Yu ',port : ' 3306 '//端口号});//创建一个connectionconnection.connect(函数(err){ if(err){ console . log('[query]-: ' err ');返回;} console . log(“[连接连接]成功!”);});//执行sql语句var用户添加SQL=' insert in user(id,name,money)值(?)';var param=[3,' ccc ',200];/* * *执行所有类型的sql语句* query (SQL,arr [],function)* @ parms 3360 SQL 3360 SQL语句arr : SQL语句填充了station运算符数组,可以默认为* function:回调函数和result:结果集。对象数组*/connection.query (useraddsql,param,function (err,RS){ if(err){ console . log(' insert err 3360 ',err . message);返回;} console.log('插入成功');});//关闭connection connection . end(function(err){ if(err){ console . log(err。tostring());返回;} console . log('[连接结束]成功!');});3.用连接池连接数据库
将以下代码写入httpServer.js文件
在命令行窗口中使用节点httpServer.js运行
var MySQL=require(' MySQL ');//用于创建数据库连接var pool=mysql.createPool({//创建数据库连接池主机: '127.0.0.1 ',用户: '根',密码: '根',数据库: 'dason ',multiplestatements : true });/** * 获取数据库连接* @parms: err:异常连接:数据库连接对象* */pool.getConnection(函数(错误,连接){ if(错误){ console。日志(err);} /** * 执行所有类型的结构化查询语言语句*查询(sql,arr[],函数)* @parms: sql:sql语句arr:填充站位符的数组,可以缺省*函数:回调函数,结果:结果集,对象组成的数组*/连接。查询('选择*来自用户',函数(错误,结果){控制台。日志(结果);连接。release();//将连接放回连接池});});结果:
[ RowDataPacket { id: 1,名称: 'a ',email: '[emailprotected]' },RowDataPacket { id: 2,名称: 'b ',email: '[emailprotected]' },RowDataPacket { id: 4,名称: 'd ',email: '[emailprotected]' },RowDataPacket { id: 5,名称end()与销毁()、释放()
end()接受一个回调函数,并且会在询问结束之后才触发,如果询问出错,仍然会终止链接,错误会传递到回调函数中处理。
销毁()立即终止数据库连接,即使还有询问没有完成,之后的回调函数也不会在触发。
发布()将连接放回连接池中。
5.package.json
国家预防机制快速安装拯救NPM快速安装保存-开发上面代码表示单独安装表达模块,
保存参数表示将该模块写入属国属性,
保存-开发表示将该模块写入开发依赖关系属性。
希望本文所述对大家nodejs程序设计有所帮助。