0


基于web的网上购物商城,在线购物商城系统,购物网站系统

项目源码获取方式放在文章末尾

一、技术栈

基于nodejs+vue 在线购物商城系统,前后端分离项目,角色分为管理员和用户,含源码

前端:vue框架

后端:nodejs express框架,数据库:mysql。

二、系统功能介绍

管理员功能

11db4cb5b4604a82a4e2a9334359435c.png

6b531a16217341bcb5a2fb8e7bbcf8f8.png

7abd0273ca374dd9801286ab2a23285e.png

用户功能

5c321093023f4bd3b877e16ca3f570db.jpg

e9302df305134029b77032bda5b939b3.jpg

28fe5a92649e47ca9b63571f84cf83ea.jpg

59a571094a814b24b87f5ad798314351.jpg

1a0f7a4a678e401480b69d190e5d4145.jpg

7b45d63cb12943b7a3156efdb99fc563.jpg

fa4ebbceee394dcc8eb8301cc247055d.jpg

f81c473bbebb498f9e1e595c4016e003.jpg

三、部分代码

用户登录

 
  1. exports.register = (req, res) => {
  2. const userInfo = req.body;
  3. if (!userInfo.username) {
  4. return res.response("用户名不能为空");
  5. };
  6. const performRegistration = () => {
  7. const sql = "insert into user set ?";
  8. const min = 1000;
  9. const max = 9999;
  10. const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
  11. const nickname = 'pet' + randomNum;
  12. const avatar = '/public/avatar.png'
  13. const created = dayjs().format("YYYY-MM-DD HH:mm:ss");
  14. database.query(
  15. sql,
  16. {
  17. ...userInfo,
  18. nickname,
  19. avatar,
  20. created,
  21. },
  22. function (err, results) {
  23. if (err) return res.response(err);
  24. login()
  25. }
  26. );
  27. };
  28. const login = () => {
  29. const sql1 = "select * from user where username=?";
  30. database.query(sql1, [userInfo.username], function (err, results) {
  31. if (err) {
  32. return res.response(err);
  33. };
  34. // 如果查询到用户,则返回用户信息
  35. if (results.length > 0) {
  36. const { id, username } = results[0];
  37. let user = {
  38. id,
  39. username,
  40. };
  41. const token = jwt.sign(user, config.jwtSecretKey, {
  42. expiresIn: config.expiresIn, // token 有效期为 10 个小时
  43. });
  44. setTimeout(() => {
  45. res.send({
  46. code: 0,
  47. message: "登录成功!",
  48. result: {
  49. token: "Bearer " + token,
  50. userInfo: results[0],
  51. },
  52. });
  53. }, 100);
  54. return
  55. };
  56. // 如果未查询到用户,执行注册逻辑
  57. performRegistration();
  58. });
  59. }
  60. login();
  61. };

文件上传

 
  1. const multer = require("multer");
  2. const path = require("path"); //
  3. const resolve = (dir) => {
  4. return path.join(__dirname, "./", dir);
  5. };
  6. let temp = multer.diskStorage({
  7. destination: function (req, file, cb) {
  8. if (file.mimetype.match('image.*') || file.mimetype.match('video.*')) {
  9. cb(null, resolve("../public/images"));
  10. } else {
  11. cb({ error: "Mime type not supported" });
  12. }
  13. },
  14. filename: function (req, file, cb) {
  15. let fileFormat = file.originalname.split(".");
  16. const min = 1000;
  17. const max = 9999;
  18. const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
  19. cb(null, new Date().getTime() + "" + randomNum + "." + fileFormat[fileFormat.length - 1]);
  20. },
  21. });
  22. const multerConfig = multer({
  23. storage: temp,
  24. });
  25. module.exports = multerConfig;

四、获取源码

关注,点赞,私信我吧

标签: vue.js mysql node.js

本文转载自: https://blog.csdn.net/m0_58133506/article/details/136577681
版权归原作者 贰佰伍拾柒 所有, 如有侵权,请联系我们删除。

“基于web的网上购物商城,在线购物商城系统,购物网站系统”的评论:

还没有评论