express框架

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("删除失败");
      }
    })
  })
posted @   又又儿  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示