日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8、路由 router

發布時間:2023/12/2 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8、路由 router 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

路由:router

用戶功能

/user ----> index.html

/user/login ----> login.html

/user/reg ----> reg.html

/user userRouter => express.Router();

app.use("/user",userRouter);

新聞功能

/news ----> index.html
/news/edit ----> edit.html
/news/add ----> add.html
router.js

var express = require("express"); var app = express(); app.listen(9000);var userRouter = express.Router(); var newsRouter = express.Router();// /user /newsapp.use("/user",userRouter); app.use("/news",newsRouter);userRouter.get("/",function(req,res){res.send("user--->index.html"); });userRouter.get("/login",function(req,res){res.send("user--->login.html"); });userRouter.get("/reg",function(req,res){res.send("user--->reg.html"); });newsRouter.get("/",function(req,res){res.send("news--->index.html"); });newsRouter.get("/edit",function(req,res){res.send("user--->edit.html"); });newsRouter.get("/add",function(req,res){res.send("user--->add.html"); });

express

Express 應用生成器

npm install express-generator -g

創建應用

express myapp -e

下載模塊

cnpm i

啟動服務:

npm start

node bin/www

npm run script名字


cnpm i -S cookie-session multer consolidate mysql


連接池:

mysql.createConnection({})
mysql.createPool({
connectionLimit:10默認是10條
})


app.js:
var createError = require("http-errors"); var logger = require("morgan"); var express = require("express"); var path = require("path"); var cookieParser = require("cookie-parser"); var cookieSession = require("cookie-session"); var consolidate = require("consolidate"); var multer = require("multer");var indexRouter = require("./routes/index"); var usersRouter = require("./routes/users");var app = express();//文件上傳 var multerMiddleware = multer({dest:"upload"}).any(); app.use(multerMiddleware);// 模板引擎 app.set("view engine", "html"); app.set("views", "views"); app.engine("html", consolidate.ejs);//日志 app.use(logger("dev"));//處理post數據 app.use(express.json()); app.use(express.urlencoded({ extended: false }));//cookie-session app.use(cookieParser());var keys = []; for(var i = 0; i < 10000; i ){keys.push("sessionid" Math.random()); }app.use(cookieSession({name:"sid",keys,maxAge:30*60*1000 //ms }));//靜態服務器 app.use(express.static("public"));app.use("/", indexRouter); app.use("/users", usersRouter);// catch 404 and forward to error handler app.use(function(req, res, next) {next(createError(404)); });// error handler app.use(function(err, req, res, next) {// set locals, only providing error in developmentres.locals.message = err.message;res.locals.error = req.app.get("env") === "development" ? err : {};// render the error pageres.status(err.status || 500);res.render("error"); });module.exports = app;
users.js:
var express = require("express"); var pool = require("../utils/pool"); var md5 = require("../utils/md5");var router = express.Router();var pageSize = 10;/* /users ---> index.html */ router.get("/", function(req, res) {if(!req.session.isLogin){res.redirect("/users/login");}var pageNo = req.query.pageNo || 1;//總頁數var totalSql = "select count(*) as count from user_table";pool.query(totalSql,function(err,data){console.log(data);if(data.length == 0){//沒有數據res.render("./users/index.html",{pageCount:0});} else {//有數據var count = data[0].count;var pageCount = Math.ceil(count/pageSize);//做分頁var beginIndex = (pageNo-1)*pageSize;var querySql = `select * from user_table limit ${beginIndex},${pageSize}`;console.log(1111,querySql);pool.query(querySql,function(err,data){console.log(111,data,pageCount);res.render("./users/index.html",{data,pageCount,pageNo});});}}); });//渲染頁面 router.get("/login", function(req, res) {res.render("./users/login2",{error:1,msg:""}); });//處理接口 router.post("/login", function(req, res) {var {user,pass} = req.body;pass = md5(pass);var sql = `select * from user_table where username="${user}" and password="${pass}"`;pool.query(sql,function(err,data){if(data.length == 0){//用戶名或者密碼錯誤//res.send({error:0,msg:"用戶名或者密碼錯誤"});res.render("./users/login2",{error:0,msg:"用戶名或者密碼錯誤"});} else {//res.send({error:1,msg:"登陸成功"});req.session.isLogin = true;res.redirect("/");} }); });router.get("/reg", function(req, res) {res.render("./users/reg"); }); //處理接口 router.post("/reg", function(req, res) {var {user,pass} = req.body;pass = md5(pass);var querySql = `select * from user_table where username="${user}"`;pool.query(querySql,function(err,data){if(data.length == 0){//用戶不存在 可以注冊var inserSql = `insert into user_table(username,password) values("${user}","${pass}")`pool.query(inserSql,function(err){res.send({error:1,msg:"注冊成功"}); });} else {//用戶已經存在res.send({error:0,msg:"用戶已存在"});} }); });module.exports = router;

SSR

分頁:

select * from user_table; 查詢所有

每頁顯示10條數據 pageSize = 10;

select * from user_table limit beginIndex,pageSize;

select * from user_table limit 1,10;

頁數pageNo beginIndex1 0 - 92 10 - 193 20 - 29

beginIndex = (pageNo-1)*pageSize

pageCount總頁數 = Math.ceil(總數據/每頁顯示多少條) = Math.ceil(count/pageSize)

count? ===> select count(*) as count from user_table;


get --- req.query /url?name=value ----> /url?name=aaareq.params /url/:name ----> /url/aaapost --- req.body

更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的8、路由 router的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。