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())
  })
})
原文地址:https://www.cnblogs.com/kingjordan/p/12027011.html