node.js操作mysql简单实例

网络编程 2021-07-04 18:32www.168986.cn编程入门
本文给大家介绍了nodejs 连接Mysql相关操作的示例代码,主要用到的是sql语句,都是比较基础的。

上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql。

安装

安装mysql模块

pm install mysql

一个例子

新建一个mysql.js的文件,代码如下

连接配置

1.host主机地址 (默认localhost)
2.user用户名
3.password密码
4.port端口号 (默认3306)
5.database数据库名
6.charset连接字符集(默认'UTF8_GENERAL_CI',注意字符集的字母都要大写)
7.localAddress此IP用于TCP连接(可选)
8.socketPath连接到unix域路径,当使用 host 和 port 时会被忽略
9.timezone时区(默认'local')
10.connectTimeout连接超时(默认不限制;单位毫秒)
11.stringifyObjects是否序列化对象(默认'false' ;与安全相关https://github./felixge/node-mysql/issues/501)
12.typeCast是否将列值转化为本地JavaScript类型值 (默认true)
13.queryFormat自定义query语句格式化方法 https://github./felixge/node-mysql#custom-format
14.supportBigNumbers数据库支持bigint或decimal类型列时,需要设此option为true (默认false)
15.bigNumberStringssupportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认false)
16.dateStrings强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认false)
17.debug开启调试(默认false)
18.multipleStatements是否许一个query中有多个MySQL语句 (默认false)
19.flags用于修改连接标志,更多详情https://github./felixge/node-mysql#connection-flags
20.ssl使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

创建数据表

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
 `Id` int(11) NOT NULL AUTO_INCREMENT,
 `CreateTime` datetime NOT NULL,
 `Header` varchar(255) DEFAULT NULL,
 `NickName` varchar(255) DEFAULT NULL,
 `Sex` int(11) NOT NULL,
 PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//引入mysql模块
var mysql = require("mysql");
//创建连接
var connection = mysql.createConnection({
  host: "localhost",
  port: "3306",
  user: "root",
  password: "abcd",
  database: "it_odd_o",
});
//开始连接
connection.connect(function (err) {
  if (err) {
    console.log("[connect] - " + err);
    return;
  } else {
    console.log("connection connect suessed!");
  };
});
//执行sql语句
connection.query("select 1+1 as result", function (err, rows, fields) {
  if (err) {
    console.log("[query] - " + err);
  } else {
    console.log("result is " + rows[0].result);
  };
});
//向user表中插入数据
var userAddSql = "insert into users(createTime,header,nickName,sex) value(now(),?,?,1);";
var userAddSql_params = ["1.jpg", "wolfy"];
//执行sql语句
connection.query(userAddSql, userAddSql_params, function (err, result) {
  if (err) {
    console.log("[insert] - " + err);
  } else {
    console.log(result);    
  };
});
//断开连接
connection.end();
结果

//改
var userUpdateSql="update users set header=? where id=?;";
var userUpdateSql_params=["2.jpg",2];
connection.query(userUpdateSql, userUpdateSql_params, function (err, result) {
  if (err) {
    console.log("[update] - " + err);
  } else {
    console.log(result);    
  };
});

通过上面的例子我们看到起主要作用还是sql语句以及参数化查询,其他的跟sql语句相似。不再一一举例。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by