目录
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;