什么是antd?
 
 
选择合适的官方文档
 
 

 
使用步骤
 
- 在已有的antd项目中安装antd。
 
 
npm i --save ant-design-vue@next
 
- 在入口文件中引入antd以及antd.css,并挂载到vue身上。
 
 
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
app.use(Antd);
 
- 只需在组件的模板中直接使用即可。
 
 
添加图标
 
- 在script标签中引入图标
 
 
import {
  HomeOutlined,
} from '@ant-design/icons-vue';
 
- 注册组件
 
 
  components: {
    HomeOutlined
  }
 
- 使用组件
 
 
<HomeOutlined />
 
- 可以通过行内样式的形式来改变组件的样式
 
 
<HomeOutlined style="color: blue" />
 
- 在按钮里加入图标(通过template)
 
 
<a-button type="primary" :size="size">
  <template #icon>
    <DownloadOutlined />
  </template>
  Download
</a-button>
 
 
表单组件
 
 

 
<template>
  <div>
    <ul class="input_list">
      <li>姓名:<a-input v-model:value="userinfo.username"></a-input></li>
      <li>年龄:<a-input v-model:value="userinfo.age"></a-input></li>
      <li>
        性别:
        <a-radio-group v-model:value="userinfo.sex">
          <a-radio value="男">男</a-radio>
          <a-radio value="女">女</a-radio>
        </a-radio-group>
      </li>
      <li>
        爱好:
        <span v-for="(item, index) in userinfo.hobbies" :key="index">
          <a-checkbox v-model:checked="item.checked">{{
            item.label
          }}</a-checkbox>
        </span>
      </li>
      <li>
        城市:
        <a-select
          v-model:value="userinfo.selectedCity"
          mode="tags"
          style="width: 300px"
          placeholder="选择城市"
          :options="userinfo.options"
        >
        </a-select>
      </li>
      <li>
        生日:
        <a-date-picker v-model:value="userinfo.birthday" @change="pickerChange" />
      </li>
    </ul>
    {{ userinfo }}
  </div>
</template>
<script>
import { defineComponent } from "vue";
import moment from 'moment';
const dateFormat = "YYYY-MM-DD";
export default defineComponent({
  data() {
    return {
      userinfo: {
        username: "",
        age: "",
        sex: "男",
        hobbies: [
          { label: "吃饭", checked: true },
          { label: "睡觉", checked: true },
          { label: "写代码", checked: false },
        ],
        options: [
          { value: "北京" },
          { value: "上海" },
          { value: "广州" },
          { value: "深圳" },
        ],
        selectedCity: ["北京"],
        birthday: moment('2021-01-03', dateFormat),
      },
    };
  },
  methods: {
    pickerChange(e) {
      
      if (!e) return;
      var oDate = new Date(e._d);
      console.log(oDate.getTime());
    },
  },
});
</script>
<style lang="scss">
ul {
  list-style: none;
}
.input_list {
  padding: 10px;
  li {
    margin-bottom: 15px;
    & > input {
      width: 400px !important;
    }
  }
}
</style>
 
在Node.js中实现图片上传或文件
 
- 安装第三方依赖
 
 
npm i --save multer
 
- 引入multer模块
 
 
const multer = require('multer');
 
- 配置storage
 
 
var storage = multer.diskStorage({
destination: async (req, file, cb)=>{
    
    let day=sd.format(new Date(), 'YYYYMMDD');
    
    let dir=path.join("static/upload",day)
    
    await mkdirp(dir)   
    cb(null, dir) 
},
filename: (req, file, cb)=> {
    
    let extname= path.extname(file.originalname);
    
    cb(null, Date.now()+extname)
}
 
- 使用multer
 
 
 
const multer = require('multer');
const path = require('path');
const sd = require('silly-datetime');
const mkdirp = require('mkdirp')
let tools={
    multer(){
        var storage = multer.diskStorage({
            
            destination: async (req, file, cb)=>{
                
                let day=sd.format(new Date(), 'YYYYMMDD');
                
                let dir=path.join("static/upload",day)
                
                await mkdirp(dir)   
                
                cb(null, dir) 
            },
            
            filename: (req, file, cb)=> {
                
                let extname= path.extname(file.originalname);
                
                cb(null, Date.now()+extname)
            }
        })
        
        var upload = multer({ storage: storage })
        return upload;
        
    },
    md5(){
    }
}
module.exports=tools
 
 
router.post("/doAdd",tools.multer().single("pic"), (req, res) => {
    
    res.send({
        body: req.body,
        file: req.file
    });
})