node之操作数据库

mongoDB数据库的操作

  • nodeJS + mysql 技术支持!
  • 下载:
    1:mysql
    2:
开启一个服务器和静态服务器 server.js

server.js服务器文件

const express = require("express");
const router = require("router");
//导入端口号
const {
  PORT
} = require('./port/config.json');
//导入所有路由
const allRouter = require("./router")

//创建一个服务器
const app = express();

//创建一个静态服务器 => 把静态资源的东西开放
app.use(express.static(("./public"), {
  maxAge: 60 * 60 * 1000 * 24 //设置浏览器的缓存效果!
}));

app.use("/api", allRouter);
//服务器的监听
app.listen(PORT, () => {
  console.log("server is running " + PORT);
})
对所有的路径的设置 index.js

路由文件夹下的路由模块 router/index.js
标签引入相关的路由.js文件!

const {
  express,
  Router,
  json,
  urlencoded
} = require("express");
const router = Router();
//格式化url 
router.use(json(), urlencoded())

const user = require("./user");
const goods = require("./goods");

//关于user的接口
router.use("/user", user);

//关于goods的接口
router.use("/goods", goods);

module.exports = router;
user.js => 方式1 链接数据库,并且操作数据库

路由文件夹下的路由模块 router/user.js
注意点:这需要在服务器环境下运行的,还有php开启的服务器环境!

const express = require("express");
const router = express.Router();
const mysql = require("mysql");

//00第一步:配置数据库
var connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "xpl183",
  database: "my_sql01"
})

//00第二步:在请求的方法里面 链接数据库并且查询数据库
//获取到所有用户名
// => 浏览器访问 http://localhost:9292/api/user
router.get("/", (req, res) => {
  //1:链接数据库
  connection.connect();
  //2:查询数据库的所有用户
  var sql = `select * from userlist2`;
  //3:数据库的查询 
  connection.query(sql, (err, result, fields) => {
    if (err) throw err;
    console.log(result); //在cmd之中打印出查询的结果,代表可以!
    res.send(result);
    //关闭服务器
    connection.end()
  });
})

module.exports = router;
user.js => 方式2 链接数据库,并且操作数据库

大力推荐这种方式去链接数据库,并且查询数据库!

const express = require("express");
const {
  request
} = require("express");
const router = express.Router();
const mysql = require("mysql");

//01第一步:创建一个连接池 => 连接池一般有着10个连接对象
var pool = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "xpl183",
  database: "my_sql01",
  multipleStatements: true
})

//连接池  这边只是设置一个sql语句即可 当做参数传递进去,在mysql一个回调函数 
router.get("/", (req, res) => {
  var sql = "select * from userlist2";
  query(sql, function (data) {
    console.log(data);
    res.send(data)
  })
})
module.exports = router;
user.js => 方式2 链接数据库,并且操作数据库 的封装!

回调函数的方式

const express = require("express");
const {
  request
} = require("express");
const router = express.Router();
// const mysql = require("mysql");
const query = require("../utils/mysql")

// 封装一个mysql公共文件
//方式5:
router.get("/", async (req, res) => {
  var sql = "select * from userlist2";
  const result = await query(sql);
  res.send(result);
})

// 方式4:
router.get("/", (req, res) => {
  var sql = "select * from userlist2";
  query(sql).then(data => {
    res.send(data)
  })
})
module.exports = router;

//方式3:
router.get("/", (req, res) => {
  var sql = "select * from userlist2";
  query(sql, function (data) {
    console.log(data);
    res.send(data)
  })
})

module.exports = router;
  • mysql.js => 一个工具js文件 utils/mysql.js
const mysql = require("mysql");

// 封装一个mysql公共文件
//连接池  这边只是设置一个sql语句即可 当做参数传递进去,在mysql一个回调函数  
// query()函数 参数1:sql语句 参数2:为回调函数 => 返回查询结果

// 方式1 使用连接池的方式
//01第一步:创建一个连接池 => 连接池一般有着10个连接对象
var pool = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "xpl183",
  database: "my_sql01",
  multipleStatements: true
})

//封装为promise的方式
function query(sql) {
  //2:操作数据库
  return new Promise((resolve, reject) => {
    pool.query(sql, (err, result, fields) => {
      if (err) throw err;
      resolve(result); //成功的回调
    })
  })
}
module.exports = query;

//封装为回调函数的方式
function query(sql, callback) {
  //2:操作数据库
  pool.query(sql, (err, result, fields) => {
    if (err) throw err;
    callback(result)
  })
}
module.exports = query;

mongoDB数据库的操作最优版本

开启一个服务器和静态服务器 server.js

server.js服务器文件

const express = require("express");
const router = require("router");
//导入端口号
const {
  PORT
} = require('./port/config.json');
//导入所有路由
const allRouter = require("./router")

//创建一个服务器
const app = express();

//创建一个静态服务器 => 把静态资源的东西开放
app.use(express.static(("./public"), {
  maxAge: 60 * 60 * 1000 * 24 //设置浏览器的缓存效果!
}));

app.use("/api", allRouter);
//服务器的监听
app.listen(PORT, () => {
  console.log("server is running " + PORT);
})
对所有的路径的设置 index.js

路由文件夹下的路由模块 router/index.js
标签引入相关的路由.js文件!

const {
  express,
  Router,
  json,
  urlencoded
} = require("express");
const router = Router();
//格式化url 
router.use(json(), urlencoded())

const user = require("./user");
const goods = require("./goods");

//关于user的接口
router.use("/user", user);

//关于goods的接口
router.use("/goods", goods);

module.exports = router;
user.js
const express = require("express");
const {
  request
} = require("express");
const router = express.Router();
const query = require("../utils/mysql")

// 获取到所有用户名
router.get("/", async (req, res) => {
  var sql = "select * from userlist2";
  const result = await query(sql);
  res.send(result);
})

//根据id删除数据
router.delete("/:id", async (req, res) => {
  let {
    id
  } = req.params;
  // console.log(id);//cmd打印出来
  var sql = `delete  from userlist2 where id=${id}`;
  const result = await query(sql);
  res.send("删除成功");
})

module.exports = router;
mysql.js => 一个工具js文件 utils/mysql.js
const mysql = require("mysql");
  
// 方式1 使用连接池的方式
//01第一步:创建一个连接池 => 连接池一般有着10个连接对象
var pool = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "xpl183",
  database: "my_sql01",
  multipleStatements: true
})

function query(sql) {
  //2:操作数据库
  return new Promise((resolve, reject) => {
    pool.query(sql, (err, result, fields) => {
      if (err) throw err;
      resolve(result); //成功的回调
    })
  })
}
module.exports = query;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值