zoukankan      html  css  js  c++  java
  • Node.js笔记

    1.express  Web 应用程序

    Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能

     npm install express --save

    命令行进入指定目录,创建项目

    npm init             (项目名称不能有大写字符)

    数据库

    npm  install  mysql2 --save

    如果需要POST请求参数,可以使用body-parser解析

    npm install body-parser --save

    如果有需要加密,比如登录密码   使用md5

    npm install md5  --save

    cookie登陆 解析cookie - cookie包 生成随机sessionId 登陆之后sessionId的存储

    ’实现需要登录后才能访问的接口,请求处理函数中判断cookie

    npm install cookie --save
    .使用自定义管线函数实现验证登录逻辑,封装isLogin管线函数

    需要登陆后才能访问的接口,使用中间件函数(在路由和处理函数中间添加的额外的处理请求的函数)isLogin,判断是否登录

    userRouter.get("/center", isLogin, (req,res)=>{
    
        res.send({
            msg:"登录过了,访问成功"
        })
    })

    也可以使用session登录    

    npm install express-session --save

    2.express-generator脚手架的使用

    npm install -g exptess-generator

    创建express项目
      express 项目名 --view=ejs(模板语法)
      cd 项目名 
      npm install 加载nodejs环境
      npm start 启动项目  localhost:3000 访问项目
     

    文件上传  multer

    npm install multer --save

    // nodejs中用于对文件上传处理的一个中间件
    var multer = require("multer")
    // 创建upload上传文件对象
    var upload = multer({
      // 配置图片上传后存放的路径
      // dest: "./public/images/head"
      // 自定义图片存储
      // 配置图片存储名称及路径
      storage:multer.diskStorage({
        destination:function(req, file, cb){
    
          cb(null, "./www/images/head")
        },
        filename:function(req, file, cb){
            
          // 获取当前时间
          let date = new Date()
          let year = date.getFullYear()
          let month = date.getMonth()+1
          let day = date.getDate()+1
          let hour = date.getHours()
          let second = date.getSeconds()
          let minutes = date.getMinutes()
    
          // 拼接图片存储名称
          // MD5 加密图片名称  时间戳拼接图片名称  MD5+时间戳拼接图片名称
          // extname 获取文件扩展名
          // 拼接图片名称
          let filename = file.fieldname + '-' + year + month + day + hour + second + minutes + path.extname(file.originalname)
          cb(null, filename)
        }
      })
    
    })
    
    // upload.single(上传图片字段key) 
    // uoload.array() 上传多张图片可以使用array 
    userRouter.post("/upload", isLogin, upload.single("head") , (req, res)=>{
      // 文件件保存成功后,会把文件的存储名称放在req.file.filename中
      console.log(req.file.filename)
      console.log(req.file.path)
      // 获取图片名称,拼接一个完整的存放路径,把文件存放路径存入数据库
      filepath = "images/head/" + req.file.filename
      
      //  req.user.moblie = req.body.moblie
      userDAO.Edit({
          moblie:req.body.moblie,
          address:req.body.address,
          nickname:req.body.nickname,
          image:filepath,
          uid:req.user.id
      })
      .then(()=>{
        res.send("修改成功!")
      })
      .catch(err=>{
          res.send(err.toString())
      })
    })
  • 相关阅读:
    spring websocket 记录
    mysql-enum
    再问jvm内存管理
    video相关参数、操作和事件
    监听页面关闭和刷新的总结
    VUE路由新页面打开的方法总结
    VUE的一个数据绑定与页面刷新相关的bug
    element-ui笔记
    Vue笔记(props和 mounted)
    Python总结(二)
  • 原文地址:https://www.cnblogs.com/kingjordan/p/12027011.html
Copyright © 2011-2022 走看看