// 引入模块
var express = require("express");
var mysql = require("mysql");
// 快速搭建服务器
var app = express();
// 绑定端口
app.listen(3000, "127.0.0.1", () => {
console.log("服务器已开启3000端口...");
})
// 创建连接
var db = mysql.createConnection({
host: "localhost",
user: "root",
password: "123456",
database: "nodemysql"
})
// 调用db.connect()方法
db.connect((err) => {
if (err) throw err;
console.log("数据库连接成功!");
})
// 创建数据库
// 在一个路由里写sql语句 使用db.query来执行sql语句 db.query()方法有两个参数 ,第一个参数是要执行的语句 第二个参数是个回调函数 回调函数里可以接收错误信息,也有执行后回来的信息 依然是错误优先
app.get("/createdb", (req, res) => {
let sql = "CREATE DATABASE nodemysql";
db.query(sql, (err, data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
res.end("数据库创建成功!");
}
})
})
// 创建数据表
app.get("/createtable", (req, res) => {
let sql = "CREATE TABLE user(id int AUTO_INCREMENT, username VARCHAR(255), password VARCHAR(20), PRIMARY KEY(ID))";
db.query(sql, (err, data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
res.end("数据表创建成功!");
}
})
})
// 插入数据
app.get("/insert",(req,res) => {
let post = {username: "lisi", password: "123456789"};
let sql = "INSERT INTO user SET ?";
db.query(sql,post,(err,data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
res.send("数据插入成功!");
}
})
})
// 查询数据
app.get("/select",(req,res) => {
let sql = "SELECT * FROM user";
db.query(sql,(err,data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
console.log("查询成功");
res.json(data);
}
})
})
// 查询单条数据,使用req.params.id接收传递的参数
app.get("/select/:id", (req, res) => {
let sql = `SELECT * FROM user WHERE id = ${req.params.id}`;
db.query(sql, (err, data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
console.log("查询成功");
res.json(data);
}
})
})
// 修改数据
// 更新的是某一条内容 所以还用传参数 需要注意的是 要更新的newUsername是字符串 所以写sql语句的时候需要使用单引号 引起来 ,如果是数值就不用了.
app.get("/update/:id", (req, res) => {
let newUsername = "wanglaowu";
let newPassword = "987654321";
let sql = `UPDATE user SET username = '${newUsername}' , password = '${newPassword}' WHERE id = ${req.params.id}`;
db.query(sql, (err, data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
res.send(`修改 ${req.params.id} 成功`);
// res.json(data);
}
})
})
// 删除数据
app.get("/delete/:id", (req, res) => {
let sql = `DELETE FROM user WHERE id = ${req.params.id}`;
db.query(sql, (err, data) => {
if(err){
console.log(err);
}else{
console.log(data);
res.setHeader("content-type", "text/plain;charset=utf-8");
res.send(`删除 ${req.params.id} 成功`);
}
})
})
JavaScript学习笔记(四十七)——Node.js操作MySQL
最新推荐文章于 2023-10-26 09:26:51 发布