1、配置好node环境,注意数据库的类型:MySQL、msSQL。
msSQL是指微软的SQLServer数据库服务器;MySQL是由瑞典MySQL AB公司开发,属于Oracle旗下的产品。
2、在项目中安装配置数据库模块(以msSQL为例,MySQL操作类似)
//在命令行中执行
npm install mssql
3、封装连接数据库的方法
//index.js文件
'use strict'
//引入mssql模块
const sql = require('mssql);
//配置数据库信息
var dbConfig = {
user:'',//用户名
password:'',//密码
server:'',//数据库地址
port:8080,//端口号
database:'test',//数据库名
options:{ encrypt:false // Use this if you're on Windows Azure }
}
//封装连接数据库的操作,并查询数据
function auto_connect(){
sql.connect(dbConfig).then(function(){
//执行连接数据库成功后的需求操作
//查询数据库中的信息 'SELECT 1 + 1 AS solution'
//注意 操作数据库语句中的 空格是否是中文空格,空格必须是英文空格
new sql.Request().query('SELECT 1 + 1 AS solution').then(function(result){
console.log('===========');
console.log('SELECT SUCCESS!');
console.log(result);
console.log('===========');
}).catch(function(err){
console.log('connect err');
throw err
})
}).catch(function(err){
console.log('连接出错');
throw err;
})
};
//执行数据连接函数
auto_connect();
//暴露数据库连接函数(可根据自己需求配置)
module.exports = {
auto_connect:auto_connect
}
4、封装删除、插入数据等操作方法
//operate.js文件
'user strict'
//引入mssql数据模块
const sql = require('mssql');
//注意:数据库的操作是异步操作
//封装删除数据库中数据函数
function deleteS(){
return new Promise(function(resolve,reject){
//数据库删除语句 DELETE FROM websites where id=6
//注意 操作数据库语句中的 空格是否是中文空格,空格必须是英文空格
new sql.Request().query('DELETE FROM websites where id=6')
.then(function(result){
console.log('===========');
console.log('DELETE SUCCESS!');
console.log(result);
console.log('===========');
resole(result);
}).catch(function(err){
console.log('DELETE query 出错');
reject(err)
throw err;
})
})
}
//封装插入数据库中数据函数
function insertS(){
return new Promise(function(resolve,reject){
//数据库删除语句 insert into ... (...) values(...)
//注意 操作数据库语句中的 空格是否是中文空格,空格必须是英文空格
//注意 模板字符串拼接数据 数据必须要加上''
new sql.Request().query(`insert into
[dbo].[pub_express_sf] (id, exp_no, p1, p1_remark, p2, p2_remark,p2_opcode,dn)
values('${ID()}','${keepData.exp_no}','${keepData.p1}','${keepData.p1_remark}','${keepData.p2}','${keepData.p2_remark}','${keepData.p2_opcode}','${keepData.dn}')`).then(function(result){
console.log('===========');
console.log('INSERT SUCCESS!');
console.log(result);
console.log('===========');
resole(result);
}).catch(function(err){
console.log('INSERT query 出错');
reject(err)
throw err;
})
})
}
//更新数据库中的数据
//因为删除和插入都是异步,所以用async\await操作一下;
//也可以用数据库update语句对数据库数据进行操作
async function auto_update(){
await deleteS();
await insertS();
}
//7月30号更新内容--------start
//上面删除和插入的异步操作有一个不好的地方就是可能会执行插入语句了以后然后执行删除得语句
//下面是一种新的写法
function updateS(){
return new Promise(function(resolve,reject){
//数据库删除语句 insert into ... (...) values(...)
//注意 操作数据库语句中的 空格是否是中文空格,空格必须是英文空格
//注意 模板字符串拼接数据 数据必须要加上''
new sql.Request().query(`
delete from [dbo].[pub_express_sf] where exp_no='${keepData.exp_no}' and dn='${keepData.dn}';
insert into [dbo].[pub_express_sf] (id, exp_no, p1, p1_remark, p2, p2_remark,p2_opcode,dn) values('${ID()}','${keepData.exp_no}','${keepData.p1}','${keepData.p1_remark}','${keepData.p2}','${keepData.p2_remark}','${keepData.p2_opcode}','${keepData.dn}')`).then(function(result){
console.log('===========');
console.log('UPDATE SUCCESS!');
console.log(result);
console.log('===========');
resole(result);
}).catch(function(err){
console.log('UPDATE query 出错');
reject(err)
throw err;
})
})
}
//7月30号更新内容--------end
//暴露出 更新,删除,插入的方法
// 只需要在其他js文件中 require引入就可调用这些函数方法
module.exports = {
auto_update : auto_update,
deleteS : deleteS,
insertS : insertS
}
5、node运行代码
//可以在命令行中运行node index.js 执行某一个文件
//也可以配置 package.json 文件 运行npm start 执行项目
//package.json 文件配置
//在"script":{}加入以下代码
"script":{
"start":"node index.js",
}