依赖

@Dependency
全局作用库通常需要在main.js中引入并使用
Nodemon
自动检测js文件变化,适合开发时使用
更多信息,请查看 GitHub - nodemon
安装 - 建议使用命令行参数-g全局安装
npm i nodemon -g
监听文件 - 注意当前工作目录和目标文件的路径关系

监听指定文件

nodemon xx.js

监听默认文件 - 自动监听配置文件 package.json 里 main 字段指定的文件;默认是 index.js

nodemon

也可以修改 scripts,执行特定命令

"scripts": {
  "server": "nodemon app.js"
}
npm server
Nano ID
逐渐取代UUID;更多信息,请访问GitHub - Nano ID
安装
npm install nanoid -S
引入
import {nanoid} from 'nanoid'
使用
//默认长度 - 21
nanoid()
//指定长度 - 8
nanoid(8)      
Multer
Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files.
Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files. It is written on top of busboy for maximum efficiency.
Multer adds a body object and a file or files object to the request object:
The body object contains the values of the text fields of the form.
the file or files object contains the files uploaded via the form.
. upload.none():only text field
. upload.single(file):single file
. upload.array():multiple files
安装依赖 - 推荐使用 npm;更多信息,请查看 NPM - multer
npm install multer --save
MD5
信息摘要
更多信息,请查看 NPM - md5js;此外还有 NPM - MD5NPM - crypto-js
安装
npm install md5js
引入
import { md5 } from 'md5js';
使用
console.log(md5('message'));    //16位;默认
console.log(md5('message',32)); //32位
XLSX
电子表格的处理 - the Common Spreadsheet Format (CSF)
更多信息,请查看 NPM - SheetJSGitHub - SheetJS js-xlsx
基本概念
单元格 - Cell Object
工作表 - Sheet Object
sheet[address] returns the cell object for the specified address
工作簿 - Workbook Object
workbook.SheetNames is an ordered list of the sheets in the workbook
wb.Sheets[sheetname] returns an object representing the worksheet
基本过程
获取数据 Acquire Data
解析数据 Extract Data
处理数据 Process Data
输出数据 Package Data
释放数据 Release Data
高频API
Parsing functions

读取文件流 - XLSX.read(data, read_opts) attempts to parse data.

读取文件 - XLSX.readFile(filename, read_opts) attempts to read filename and parse.

HTML Table Input

. 表格到表单 - XLSX.utils.table_to_sheet(table) - XLSX.utils.table_to_sheet takes a table DOM element and returns a worksheet resembling the input table. Numbers are parsed. All other data will be stored as strings.

. 表格到工作簿 - XLSX.utils.table_to_book(table) - XLSX.utils.table_to_book produces a minimal workbook based on the worksheet.

JSON

. 表单到JSON - XLSX.utils.sheet_to_json

Writing functions

. 工作簿到文件 - XLSX.writeFile(wb, filename, write_opts)

Node.js开发
安装依赖
npm i xlsx -S
引入包
import { ref } from 'vue';
import * as XLSX from 'xlsx/xlsx.mjs';

使用<input>的file类型。读入excel文件并解析,最后渲染

let order = ref([])
const selExcel = (e) => {
  const fr = new FileReader()
  fr.readAsArrayBuffer(e.target.files[0])
  fr.onload = (ev) => {
    const res = ev.target.result
    const workbook = XLSX.read(res, { type: "binary" })
    const wsName = workbook.SheetNames[0]
    const sheetJson = XLSX.utils.sheet_to_json(workbook.Sheets[wsName])
    console.log(sheetJson);
    order.value = sheetJson
  }
}

使用ref模板引用获取表格,将其数据并导出为excel

let tbl = ref(null)
const outExcel = () => {
  if (tbl.value) {
    let workbook = XLSX.utils.table_to_book(tbl.value);
    XLSX.writeFile(workbook, "user.xlsx");
  } else {
    console.log("tbl is null");
  }
}        
HTML 原生开发
引入dist中的xlsx.full.min.js
<script src="js/xlsx.full.min.js"></script>
<script src="js/export.js"></script>
<script>
  function btn_export() {
    var table1 = document.querySelector("#table1");
    var sheet = XLSX.utils.table_to_sheet(table1);//将一个table对象转换成一个sheet对象
    openDownloadDialog(sheet2blob(sheet), '下载.xlsx');
  }
</script>
Wangeditor
富文本编辑器
建议示例代码调整为setup语法糖模式
根据项目,适当调整结构的内联样式高度height
更多信息,请查看 Wangeditor
安装 - 两个库一起安装
npm install @wangeditor/editor @wangeditor/editor-for-vue@next --save
引入 - 工具栏 Toolbar;编辑器 Editor
import { onBeforeUnmount, shallowRef } from 'vue'
import '@wangeditor/editor/dist/css/style.css' // 引入 css
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
配置 - 模式配置 mode;工具栏配置 toolbarConfig;编辑器配置 editorConfig

还可以进一步对菜单配置,如配置图片上传

const editorRef = shallowRef()  //MUST shallowRef

const mode = 'default'  // 或 simple
const toolbarConfig = {}
const editorConfig = { 
  placeholder: '请输入内容...',
  //图片上传配置 - 指定接口、名称等属性
  MENU_CONF: {
    "uploadImage": {
      server: '/upload/upload/image',
      fieldName: 'image',
      onSuccess(file, res) {
        console.log(`${file.name} 上传成功`, res)
      },
      onFailed(file, res) {
        console.log(`${file.name} 上传失败`, res)
      }
    }
  }
}

// 记录 editor 实例,重要!
const handleCreated = (editor) => {
  editorRef.value = editor
}

// 组件销毁时,要及时销毁编辑器
onBeforeUnmount(() => {
  const editor = editorRef.value
  if (editor == null) return
  editor.destroy()
})
使用
<Toolbar 
  :editor="editorRef" 
  :defaultConfig="toolbarConfig" 
  :mode="mode" />
<Editor 
  v-model="valueHtml" 
  :defaultConfig="editorConfig" 
  :mode="mode"
  @onCreated="handleCreated" />
        
样式 - 可以使用flex垂直布局;部分样式需要使用!important提权;略
封装为组件 - 建议
Silly-Datetime
时间格式处理
更多信息,请查看 silly-datetime
Moment
时间格式处理
更多信息,请查看 moment.js
NProgress
切换时,使用进度条效果
更多信息,请查看NPM - nprogress
npm install --save nprogress
路由切换时,指定进度条效果
1. 在路由文件index.js中引入库,其中一个是样式;注意看 node_modules 依赖中的文件关系
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
2.使用路由守卫;进入时,开始;完成时,结束
router.beforeEach((to, from, next) => {
  NProgress.start();
  next()
})

router.afterEach((to, from) => {
  NProgress.done();
})        
Formidable
A Node.js module for parsing form data, especially file uploads.
Formidable是一个Node.js模块,用于解析表单数据,特别是文件上传;更多信息,请查看NPM - formidable
Mock
数据制造机
MySql
数据库
cors
代理