node 组件库
刷新页面自动重启服务器
npm install nodemon
设置跨域
npm i cors@2.8.5
查看代码
js
// 导入 cors 中间件
const cors = require("cors");
// 将 cors 注册为全局中间件,允许跨域请求
app.use(cors());
// 设置指定域名访问
app.use(
cors({
origin: ["http://localhost:8080"],
})
);
安装服务器
npm install express
文件上传
npm install multer
查看代码
js
const express = require("express");
const multer = require("multer");
const app = express();
app.all("*", function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Headers", ["mytoken", "Content-Type"]);
next();
});
// 配置Multer以存储文件
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "image/"); // 确保这个文件夹存在
},
filename: function (req, file, cb) {
cb(null, file.fieldname + "-" + Date.now() + file.originalname); // 文件重命名
},
});
const upload = multer({ storage: storage });
// 设置路由处理文件上传
app.post("/upload", upload.single("file"), function (req, res, next) {
// 文件信息在req.file
// 获取上传的文件名称
const filename = req.file.filename;
console.log(`http://localhost:3000/image/${filename}`);
if (!req.file) {
return res.status(400).send("上传失败!");
}
res.send("上传成功!");
});
app.listen(3000, () => {
console.log("App listening on port 3000");
});
多文件上传:把 upload.single('file')换成 upload.array('file', 12)
jwt
npm install jsonwebtoken
查看代码
js
const jwt = require("jsonwebtoken");
// 加密
const tokenText = { name: "小张" };
const secret = "ZhangCode";
const token = jwt.sign(tokenText, secret, { expiresIn: 60 * 60 });
// 解密
jwt.verify(token, "ZhangCode", (err, data) => {
if (err) console.log("失败");
console.log("成功");
});
数据加密
npm i bcryptjs@2.4.3
查看代码
js
const bcrypt = require("bcryptjs");
// 对用户的密码,进行 bcrype 加密,返回值是加密之后的密码字符串
userinfo.password = bcrypt.hashSync(明文密码, 10);
// 拿着用户输入的密码,和数据库中存储的密码进行对比
const compareResult = bcrypt.compareSync(用户输入的密码, 数据库中加密的密码);