后台插件相关

cmd命令行工具

  • 打开

    • win键+ "cmd"

    • shift + 右击 选择打开命令行窗口

  • 全局path环境变量

    • 右击我的电脑(非快捷方式) -- 属性 -- 高级系统设置 -- 环境变量 -- 系统变量(所有用户) ------ 找path ---> 增加+"路径;"/添加

    • 功能: 重启cmd后可直接输入相应程序的XXX.exe / XXX即可打开该应用程序

  • window命令(后面的一些node以及npm命令,linux系统只需在前面加一个$即可)

    • cd + 路径 打开该文件夹,或者返回上一级文件夹,注意:是文件夹而不是文件

    • dir 显示文件列表

    • ren 改变文件名

    • move 目录 目录名 改目录名 eg.(c:> move c:\autoexec.bat c:\old )

    • mkdir + xxx 创建文件夹

    • cls 清屏

    • F7 显示命令历史记录

    • 上箭头会检测到上面写的命令行代码

    • Ctrl+C Ctrl+Break 强行中止命令执行

    • mspaint 打开画图板

    • mstsc 远程桌面连接

    • ping + IP地址 检查网络是否能够连通

NodeJs

  • 中文官网 http://nodejs.cn/

  • node命令

    • node -v 查看node的版本

    • node + js文件 运行该文件

npm

  • 安装node时自动安装,npm(Node package manager),node的包管理工具

  • 第三方托管网站 https://www.npmjs.com/

  • 更新npm

    • 1-重新安装新版本的node,npm会跟着更新

    • 2-单独升级npm

      • npm i npm -g

      • npm i npm@5 -g (指定版本)

  • 安装和卸载全局包(工具类)

    • 安装 npm install/i 包名 -g

      • 安装的包一般都在 c:/user/自己的文件夹/Appdata/roaming/npm

      • npm下面的npm-cache文件夹用来记录曾经下载过的插件,再次下载是节省时间和流量

    • 卸载 npm uninstall/remove 包名 -g

  • 安装和卸载本地包

    • 只跟自己的项目有关,不必全局使用

    • 在自己项目的文件夹中shift+右键打开命令行窗口

    • 注意:文件夹名称只能是英文

    • 安装过程

      • 1- 初始化 npm init+回车或者npm init -y(快速初始化) (生成一个package.json文件)

      • 2- 下载第三方模板

        • 2.1npm i 包名 --save或者npm i 包名 -S(记录在package.json的'dependencies中')

        • 2.2 npm i 包名 --save-dev或者npm i 包名 -D(记录在'devDependencies'中)

        • 2.3 如手动删除node-module文件夹后,手动在项目文件夹下调用npm i(开发时)全部恢复

        • 2.4 如手动删除node-module文件夹后,手动在项目文件夹下调用npm --production(上线时用)只会恢复dependencies中记录的插件

      • 3- 卸载 通过npm uninstall 包名 --save卸载,会将package.json中的记录也删除,npm i不会恢复

      • 注意:直接粘贴node module 文件夹可能无用,只保留package.json文件调用npm i即可

  • 注意:在包名后面+'@3'表名下载大版本问3的该包,小版本也可指定(包名@+版本号)

全局工具类(-g)

nrm
  • 功能:解决npm因为是国外服务器而下载慢,提供一写国内的镜相下载的地址

  • 调用nrm ls (查看所有的服务器地址,带*表示选择的地址)

  • nrm use 地址简写

  • 选择后继续调用npm 的命令即可

淘宝镜相
  • npm i cnpm -g

  • 将npm改为 cnpm即可

i5ting_toc
  • 功能将md文件转为html文件

  • 安装后调用 i5ting_toc -f 文件.md (-o是否在默认浏览器上打开)

第三方模块(-S)

express
  • www.expressjs.com.cn

  • 基于NodeJS的后端web开发框架

  • 一些express小属性与方法

    1. req.query属性获取get请求中通过?传递的参数,返回值为对象
    2. req.params属性获取通过路径标识符传递的参数,返回值为对象
       eg.app.get('/getinfo/:name/:id') //注意冒号
       /getinfo/zs/12就可以被获取

  • express中间件

    • app.use(xxxx) 专门用来注册中间件,xxxx为函数,不调用

    • app.set(xxx,xxx)用来配置一些中间件

    • 中间件的相关概念

      1. 中间件的表现形式 (req,res,next)=>{....    next()};  (若是单独书写一个文件,勿忘将这个函数   module.exports出去)
      
      2. 中间件共享res,req----可以将中间的一些方法挂载在这两个对象上
      
      3. 最后一个中间件没有必要再next,但依旧是中间件
      
      4. 使用
      function xxx (req,res,next){...  next()}(写在外部勿忘module.exports)
      app.use(xxx) //注意:xxx后面没有括号
    • 中间件的分类

      1.应用级别的中间件,挂载在app对象身上 即app.use/app.get/app.post实为最后一个中间件
      2.路由级的中间件,挂载在router对象上的中间件 router.get
      3.错误处理中间件:参数列表有四个(err,req,res,next)
      4.内置中间件:express.static(root,[options])(express中唯一的内置中间件)
      5.第三方中间件,需要通过npm安装的中间件(npm+require+app.use/npm+app.set/app.render)
express.static()(内置)
  • app.use('/虚拟目录',express.static('静态资源文件夹路径,多相对路径'));(只需要调用这一句话即可,不必下载和导入)相当于Apache中的www文件夹,默认index

  • 虚拟目录与'静态资源文件夹路径相同,引入css和js时就不必考虑路径问题

  • 使用

    sever.js中

    const express = require('express')
    var compression = require('compression')
    const server = express()
    // 注册资源压缩的中间件
    server.use(compression())
    // 托管静态资源目录
    server.use(express.static('./assets'))
    server.listen(4002, () => {
      console.log('express server running at http://127.0.0.1:4002')
    })

    引入css文件时,<link rel="stylesheet" href="/assets/css/index.css">

router(路由中间件)
  • express提供的路由用来分发请求

  • router.js中

    const express = require('express');
    const router = express.Router();//注意是大写R
    router.get('/', (req, res) => {
        //不必在此引入ejs
        res.render('index', {
            name: 'clulu',
            age: 18
        })
    })
    module.exports = router;
  • server.js

    const express = require('express');
    
    const app = express();
    
    //配置模板引擎设置
    app.set('view engine', 'ejs');
    app.set('views', './views');
    
    const router = require('./router.js')
    app.use(router);
    
    app.listen(3001, () => {
        console.log('sever running ....');
    })

express-session(第三方)
  • 第三方中间件,底层帮助我们开辟了一个session空间,并且产生一个cookie返回给浏览器,在下一次请求数据的时候自动的取出浏览器带过来的cookie,并将打开对应的session,取出其中的值;

  • 使用

    • 1.安装session模块

      npm install express-session -S
    • 2.导入session模块

      var session = require('express-session');
    • 3.在express中使用session中间件:

      // 启用 session 中间件
      app.use(session({
        secret: '任意字符串', 
        // 相当于是一个加密密钥,对sessionID进行加密的字符串,值可以是任意字符,数字,符号
        resave: false,
        //值为true时,强制将session存储在物理磁盘(storage)上,从而保证session不会轻易丢失;
        //值为false时,强制session保存到内存(session store)中,推荐
        saveUninitialized: false
        //值为true时,强制将未初始化的session存到物理内存中
        //值为false时,强制没有“初始化”的session保存到storage中,推荐
      }))

      注意:第3步以后,只要存在req,即可以访问·req.session这个对象

    • 4.将私有数据保存到当前请求的session会话中:

      // 将登录的用户保存到session中
      req.session.user = result.dataValues;
      // 设置是否登录为true
      req.session.islogin = true;
    • 5.通过destroy()方法清空session数据:(用以注销)

      req.session.destroy(function(err){
        if(err) throw err;
        console.log('用户退出成功!');
        // 实现服务器端的跳转,这个对比于 客户端跳转
        res.redirect('/');
      });

compression()(第三方)
  • 项目部署时,开启服务器的GZip压缩功能,第三方中间件

  • 这个中间件需要下载npm install compression -S

  • 需要导入const compression=require('compression');

  • 加载中间件app.use(compression())

ejs(第三方)
  • express中的模板引擎

  • 注意:

  • 使用

    1. 安装 npm i ejs -S
    2. 将ejs配置为默认的模板引擎 app.set('view engine','ejs');
    3. 配置模板页面的存放路径 app.set('views','需要渲染的ejs文件所在的文件夹路径')
    4.res.render('ejs文件,可以不写后缀,路径上面已经配置无需再写',data) 
      若ejs问价在set制定的文件夹得再下一及目录,就需要加'./',如'./user/index'
    注意:无需require进来,通过配置进来
    5. 该模板语法<%= %>
body-parser(第三方)
  • 作用: 解析表单数据

  • 使用

    1. npm i body-parser -S
    2. const bodyParser=require('body-parser');
       app.use(bodyParser.urlencoded({extended:false}));
       + urlencoded 表示解析键值对形式的数据
       + extended:false 表示不适用扩展模块来解析表单数据,而使用node内置的querystring模块来解析数据
    3.取值时,使用req.body即可得到一个参数的对象

cors(第三方)
  • 从服务器入手解决跨域问题,本质是设置请求头

  • 真正的跨域,真正的ajax

  • 不像jsonp跨域,只能发送get请求

  • 使用

    1. npm i cors -S
    2. const cors = require('cors');
       app.use(cors());

(中间件)

mysql
  • 第三方模块,可以通过代码控制数据库

  • 使用前提

    • 打开mysql软件

  • 使用

    1.npm i mysql -S
    2.const mysql = require('mysql');
      const conn = mysql.createConnection({
          host: '127.0.0.1',//注意前面不可以加协议http之类的,此数据库是tcp协议
          user: 'root',//数据库账户名
          password: '',//数据库账户密码
          database: 'mytest'//注意:是数据库名不是连接的名称
      })
      
      conn.connect();//可有可无,如果没有在conn.query()时,先创建连接,再执行sql语句
      
      conn.query('sql语句',(err,result)=>{
         //err在sql语句出错的时候出现
         //results是一个对象
      })
  • 常见sql语句(CRUD)

    1.增(create) insert into 表名(name,id) values ('zs',12);   affectedRow=n
    2.删(delete) delete from 表名 where 匹配条件   affectedRow=n
    3.改(update) update 表名 set name='hah',age=13 where 匹配条件  affectedRow=n
    4.查(read)   select * from 表名 where 匹配条件 affectedRow=0
                select name,age from 表名 where 匹配条件
    5.排序 select * from 表名  order by id(比如) desc(倒序)/asc(正序)
    6.得到符合条件的数量 
       select count(*) from 表名 where gender='man' ----> count(*) 3
       select count(*) as count(自定义新名称) from 表名 where gender='man'----> count 3
  • 此模块特别的sql语句用法

    1.增加数据
      const p1 = { username: 'zs'}
      const sqlstr = 'insert into users set?'
      conn.query(sqlstr, p1, (err, result) => {}) 
    2.删除数据
      const sqlstr = 'delete from users where id=?'
      conn.query(sqlstr, 2, (err, result) => {}) 
    3.改变数据
      const p1 = {id: 3,username: 'cuilulu哈哈哈'}
      const sqlstr = 'update users set ? where id=?'
      conn.query(sqlstr, [p1, p1.id], (err, result) => {}) //注意两个问号时用数组传递参数
    4.查询数据
     conn.query('select * from users',(err,result)=>{})
     conn.query('select * from users where id=?',3,(err,result)=>{})

art-template(前后)
  • 作用: 动态渲染页面

  • 官方文档 https://aui.github.io/art-template/zh-cn/docs/index.html

  • 下载npm i art-template -S

  • 使用

    const template=require('art-template');
    const html = template('路径.html',data);(在html文件的使用同以往在前端的使用规则)
    将完整的html片段直接输出即可

moment(前后)
  • 时间格式化处理模板

  • http://momentjs.cn/

  • 使用

    1.npm i moment -S
    2.const dateStr=moment().format('YYYY-MM-DD HH-mm-ss')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值