1.对项目初始化。npm init -y;
2.npm安装MySQL的驱动 cnpm i mysql --save;
3.引入mysql模块。
4.连接配置。调用createConnection方法,这个方法需要一个对象,对象的属性为连接数据库的配置信息。
5.建立连接。
6.创建sql语句(查询select:会将查询的记录封装成一个对象)添加,插入inset、修改updata、删除delete:成功后返回
7.执行sql语句
结束连接。不能一直开启,会消耗资源(程序/数据库的内存,连接数等等)。
第六步:
OkPacket {
fieldCount: 0,
affectedRows: 1, //1, 受影响的行数 insert update delete都会返回 可以用这个字段判断新增,修改,删除是否执行成功。
insertId: 0, //如果表的主键是自增的,那么insert语句会返回插入记录的id值。
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 //被改变的行数 只有是updata时才会不为0
}
如果是select , 会将查询的记录封装成一个对象,对象的属性是字段的名字,值就是当前记录的值。把对象放在一个数组中,返回。
[
{
SId: '01',
Sname: '赵雷',
Sage: 1989-12-31T16:00:00.000Z,
Ssex: '男'
},
{
SId: '02',
Sname: '钱电',
Sage: 1990-12-20T16:00:00.000Z,
Ssex: '男'
}
]
const mysql = require("mysql");
const conn = mysql.createConnection({ //4.连接配置 调用createConnection方法,这个方法需要一个对象。对象的属性为连接数据库的配置信息。
host:"localhost", //主机名(服务器地址)
user:"root", //用户名
password:"123456", //密码
database:"h_test" //数据库名字
});
conn.connect(); //5.建立连接
let sql = "delete from demo where id = 3"; //6.创建sql语句
conn.query(sql,(err,result)=>{ //7.执行sql语句
if (err) {
console.log(err);
return;
}
if (result.affectedRows!=0) { //判断delete语句是否执行成功
console.log("删除成功!");
}else{
console.log("删除失败!");
}
})
conn.end(); //8.结束连接 不能一直开启,会消耗资源(程序/数据库的内存,连接数等等)
Document
const http = require("http");
const queryString = require("querystring");
const mysql = require("mysql");
http.createServer((req, res) => {
if (req.url.startsWith("/queryScore")) {
// 获取get参数
let params = queryString.parse(req.url.split("?")[1]);
//连接配置
const conn = mysql.createConnection({
host: "localhost",
user: "root",
password: "123456",
database: "csy"
})
//建立连接
conn.connect();
//书写sql语句
let sql = `SELECT score FROM sc WHERE SId = '${params.sid}' AND CId = '${params.cid}';`;
console.log(sql);
//执行sql语句
conn.query(sql, (err, result) => { //result 返回的是一个数组
if (err) {
console.log(err);
return;
}
res.end(JSON.stringify(result[0].score)); //转成字符串
})
// 关闭连接
conn.end();
return;
}
res.end();
}).listen(3000, () => {
console.log("服务器成功启动");
});
index.js如下:
const http = require("http");
const queryString = require("querystring");
const db = require("./db");
http.createServer((req, res) => {
if (req.url.startsWith("/queryScore")) {
// 获取get参数
let params = queryString.parse(req.url.split("?")[1]);
//书写sql语句
let sql = `SELECT score FROM sc WHERE SId = '${params.sid}' AND CId = '${params.cid}';`;
// query是一个异步函数,对结果的处理不能直接写在下面。因为异步函数的结果还没有获取到。
db.query(sql,(err,result)=>{
if (err) {
res.end("查询失败,错误信息为:"+err);
}
res.end(JSON.stringify(result));
});
}else{
res.end();
}
}).listen(3000, () => {
console.log("服务器成功启动");
});
db.js如下:
let db = {};
//引入mysql模块
const mysql = require("mysql");
//连接配置
const conn = mysql.createConnection({
host:"localhost",
user:"root",
password:"123456",
database:"h_test"
})
//建立连接
conn.connect();
//准备sql语句
db.query = function(sql,callback){
conn.query(sql,(err,result)=>{
if (err) {
// 第一个参数是错误信息,第二个参数是执行结果。
callback(err,null)
return;
}
// 对result执行操作
callback(null,result);
return;
})
//关闭连接
// conn.end();
}
module.exports = db;
index.js如下:
const http = require("http");
const queryString = require("querystring");
const db = require("./db");
http.createServer((req, res) => {
if (req.url.startsWith("/queryScore")) {
// 获取get参数
let params = queryString.parse(req.url.split("?")[1]);
//书写sql语句
let sql = `SELECT score FROM sc WHERE SId = '${params.sid}' AND CId = '${params.cid}';`;
db.query(sql)
.then(function(result){
res.end(JSON.stringify(result));
})
.catch(function(err){
res.end("查询失败,错误信息为:"+err);
});
}else{
res.end();
}
}).listen(3000, () => {
console.log("服务器成功启动");
});
db.js如下:
let db = {};
//引入mysql模块
const mysql = require("mysql");
//连接配置
const conn = mysql.createConnection({
host:"localhost",
user:"root",
password:"123456",
database:"h_test"
})
//建立连接
conn.connect();
//准备sql语句
db.query = function(sql){
return new Promise((resolve,reject)=>{
conn.query(sql,(err,result)=>{
if (err) {
reject(err);
}else{
resolve(result);
}
})
// conn.end();
})
}
module.exports = db;