express框架
首先要安装express框架
npm i express
在js文件中的操作
//1. 引入express
let express=require('express');
//2. 创建应用(类似搭建http服务器)
let app=express();
//3. 设置静态资源路径
app.use(express.static('node_modules'));
//设置完静态资源路径后,默认的/就表示/加上之后的目录
//4. 设置模板引擎
app.set('view engine','ejs');
//注意: ejs需要安装模块
//ejs就是模板引擎的一种,就是用来存储页面的(hmtl),此时扩展名为ejs,可以在里面直接写html代码
//ejs文件中可以写逻辑代码,所以用ejs => 逻辑代码放在 <%%>中
eg: <% for(let i=0;i<xxx;i++){ %>
<a href=''>xxx</a>
<% } %>
//5. 设置视图路径(存储ejs文件)
app.set('views','./views');
//6. 设置路由(类似于判断url)
app.请求方式('路由规则(路径)',(req,res)=>{
xxx
})
//7. 设置监听端口
app.listen(端口号) ;
操作数据库增删改查功能代码
let express = require("express");
let mysql = require("mysql");
let urll = require("url");
let fia = require("formidable");
let connection = mysql.createConnection({
host: "127.0.0.1",
user: "root",
password: "root",
database: "sql01",
});
connection.connect();
let app = express();
app.use(express.static("node_modules"));
app.set("view engine", "ejs");
app.set("views", "./views");
//渲染页面
app.get("/index", (req, res) => {
let sql = "select * from class";
connection.query(sql, (error, results) => {
if (!error) {
res.render("index", { data: results });
res.end();
}
});
});
//删除
app.get("/del", (req, res) => {
let url = req.url;
let sql = "delete from class where id=?";
let id = urll.parse(url, true).query.id;
let delId = [id];
let sql2 = mysql.format(sql, delId);
connection.query(sql2, (error, results) => {
if (!error) {
console.log(results);
res.redirect("index");
res.end();
}
});
});
//添加
app.get("/ins", (req, res) => {
res.render("insert");
res.end();
});
app.post("/doinsert", (req, res) => {
let form = new fia.IncomingForm();
form.parse(req, (err, fields) => {
let username = fields.username;
let grade = fields.grade;
let sex = fields.sex;
let sql = "insert into class values(null,?,?,?)";
let insId = [username, grade, sex];
let sql2 = mysql.format(sql, insId);
connection.query(sql2, (error, results) => {
if (!error) {
res.redirect("index");
res.end();
}
});
});
});
//修改
app.get("/upd", (req, res) => {
let url = req.url;
let id = urll.parse(url, true).query.id;
let sql = "select * from class where id=?";
let uid = [id];
let sql2 = mysql.format(sql, uid);
connection.query(sql2, (error, results) => {
if (!error) {
res.render("update", { data: results });
res.end();
}
});
});
app.post("/doupdate", (req, res) => {
let form = new fia.IncomingForm();
form.parse(req, (err, fields) => {
let username = fields.username;
let grade = fields.grade;
let sex = fields.sex;
let url = req.url;
let id = urll.parse(url, true).query.id;
let sql = "update class set name=?,grade=?,sex=?where id=?";
let updId = [username, grade, sex, id];
let sql2 = mysql.format(sql, updId);
connection.query(sql2, (error, results) => {
if (!error) {
if (results.affectedRows > 0) {
res.redirect("index");
res.end();
}
res.end()
}
});
});
});
app.listen(8090);
//ajax删除
//需要在js文件中删除数据库内容,在ejs文件中删除页面节点内容,在js文件中删除成功返回状态码,使用ejs接收状态码,进行判断
//js代码
app.get("/ajaxdel", (req, res) => {
let url = req.url;
let id = urll.parse(url, true).query.id;
let sql = "delete from stu where id=?";
let ids = [id];
let sql2 = mysql.format(sql, ids);
connection.query(sql2, (error, results) => {
if (!error) {
if (results.affectedRows > 0) {
res.json({ code: "200" });
} else {
res.json({ code: "500" });
}
}
});
});
//ejs代码
$('.del').click(function () {
let tr = $(this).parents('tr');
let id = $(this).parents('tr').find('td:first').html();
console.log(id);
$.get("/ajaxdel", { id: id }, function (res) {
// console.log(res);
if (res.code == "200") {
tr.remove();
alert("删除成功");
} else {
alert("删除失败");
}
})
})