express的简单dome

const express = require("express");
const port = 8080;
const app = express();
/* 解析post */
const body = require("body-parser");
/* 解析cookie */
const cookieParser = require("cookie-parser");
/* 加密解析cookie */
const cookieSession = require("cookie-session");
const path = require("path");
const fs = require("fs");
/* 获取文件 */
const multer = require("multer");

app.all("*", function (req, res, next) {
res.header("Access-Control-Allow-Origin", "http://192.168.31.45:63341");
/* 处理跨域携带cookie时出现的问题 */
res.header("Access-Control-Allow-Credentials", "true");
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
if (req.method.toLowerCase() == 'options') {
res.send(200); //让options尝试请求快速结束
} else {
next();
}
});
/* 解析post参数 */
app.use(body.urlencoded({
/* extended: false:表示使用系统模块querystring来处理,也是官方推荐的 */
extended: false,
}));
/* 通过配置multer的dest属性, 将文件储存在项目下的tmp文件中 */
app.use(multer({dest: '../upload/'}).any());
/* 引用解析cookie参数中间件 */
app.use(cookieParser(
/* 增加签名 */
"123456789"
));
/* 引用加密cookie中间件 */
app.use(cookieSession({
/* 加密数组 */
keys: ["123", "456", "789"],
/* 有效时间 */
maxAge: 20 * 60 * 1000,
}))

/* 获取get数据 */
app.get("/api/userInfo", (req, res, next) => {
console.log(req.query);
res.send("get请求成功");
})

/* 获取post数据 */
app.post("/api/userLogin", (req, res, next) => {
console.log(req.body);
res.send("post请求成功");
})
/* 获取文件 */
app.post("/api/filesUpload", (req, res, next) => {
/*
* req.files[0].path这是路径加文件明
* path.parse(req.files[0].originalname).ext获取文件后缀名
* */
const filename = req.files[0].path + path.parse(req.files[0].originalname).ext
console.log(req.files[0]);
console.log(req.files[0].path);
console.log(path.parse(req.files[0].originalname));
console.log(path.parse(req.files[0].originalname).ext);
console.log(filename);
console.log(req.body);
fs.rename(req.files[0].path, filename, function (err) {
if (err) {
res.send(err)
} else {
res.send("文件上传成功");
}
})
})

app.post("/api/userCookie", (req, res) => {
/* 获取未签名cookies的值 */
console.log(req.cookies);
/* 获取经过签名的cookies */
console.log(req.signedCookies);
/* 向浏览器添加cookie */
res.cookie("times", "0101215155", {
/* 是否只能服务端操作 */
httpOnly: true,
/* 只有https的情况下才能使用 */
// secure:true,
/* 是否签名 */
signed: true,
/* 添加路径 */
// path: "/",
/* 添加域名 */
// domain: "",
/* 添加有效期 */
maxAge: 7 * 24 * 60 * 60 * 1000
});
// res.cookie("times", "0101215155");
res.send({
code: 0,
data: "成功"
})
})
app.post("/api/userSession", (req, res) => {
/* 获取加密之后的cookie */
if (!req.session["key"]) {
req.session["key"] = 1;
} else {
req.session["key"]++;
}
console.log("=======================================");
console.log(req.session.key);
console.log(req.session);
res.send({
code: 0,
data: "成功"
})
})

app.use("/view/", express.static("../static/"));

app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
posted @ 2021-03-31 17:10  莣ㄋ噯  阅读(72)  评论(0)    收藏  举报