• 【Node】---- 项目相关


    1、准备工作

    • npm init -y  初始化,生成package.js
    • express -e  生成文件夹
    • npm install  依赖加载,让所有模块自动下载
    • npm start  服务器挂起

    2、前端搭建

    • html结构
    • css样式
    • js基本操作 + ajax请求数据,连接接口(app,js和routes)

    3、后端搭建

    • bin/www定义端口号以及边界条件的处理;
    • app,js创建服务器,使用中间件,定义访问路径,通过app.use返回给前端路径,并连接路由router文件;
    • routes:路由,通过router.post/get返回给前端路径,并连接逻辑controller文件;
    • controller:逻辑实现,通过req.body/req.query获取前端post/get方式传的值,再通过res.json返回给客户端结果,通过调用model文件数据库增删改查的方法实现逻辑判断;
    • model:增删改查操作,需要访问util工具夹连接数据库;
    • util:连接数据库

    4、MVC模式:架构思想

    • M:model层,数据库的增删改查操作;
    • V:view层,视图的展示;
    • C:controller层,实现业务逻辑;

    5、信息加密(md5能解密,sha256不能解密)

    • 引入加密模块:const crypto = require("crypto");
    • 创建sha256算法:const hash = crypto.createHash("sha256");
    • 需要加密的字符串:hash.update(password);
    • 对字符串进行加密/加盐:hash.digest("hex");

    6、token:实现默认登录

    • 安装:npm install jsonwebtoken -S
    • 引入:const jwt = require("jsonwebtoken ");
    • 设置:let token = jwt.sign({payload 相关信息}, "密钥随机字符", {'expiresln':'1h'}过期时间);
    • 种cookie:res.cookie("token", token);

    7、图片上传问题

    • 思想:ajax只能提交非文件/图片数据,因此可以通过FormData模拟表单提交数据;
    • var formData = new formData();
    • append: key  val; [服务器接受的key值]
    • formData.append(key.val);  [formData.get()、formData.set()、formData.getAll()]
    • 注:node接受formData依赖formidable模块 -- cnpm install formidable -D;

    8、路径问题

    • 以require所在文件为参照物,则使用相对路径;
    • 以其他node路径为参照物,则使用绝对路径;

    9、中间层:即一个服务,服务器参照物与服务器之间的调取没有跨域问题

    • 解决跨域
    • 进行一些逻辑处理,以及数据过滤
    • 依赖request
    • 安装:cnpm install request -D
    • 使用:const requset = require("request");   
            request("访问地址", (err, responseText, body) {})
  • 相关阅读:
    为什么处理有序数组比无序数组快?
    LeetCode:Longest Common Prefix
    LeetCode:Container With Most Water,Trapping Rain Water
    LeetCode:Substring with Concatenation of All Words (summarize)
    LeetCode:Pow(x, n)
    LeetCode:Combination Sum I II
    LeetCode:N-Queens I II(n皇后问题)
    LeetCode:Valid Sudoku,Sudoku Solver(数独游戏)
    LeetCode:Divide Two Integers
    LeetCode:Reverse Nodes in k-Group
  • 原文地址:https://www.cnblogs.com/pinkpinkc/p/14523299.html
Copyright © 2020-2023  润新知