美文网首页
day3.node(关于文件上传和mock模拟假数据)

day3.node(关于文件上传和mock模拟假数据)

作者: 阿沙冲冲冲 | 来源:发表于2019-06-21 20:41 被阅读0次

    文件上传

    1.npm的包formidable

    //引入相应的模块
    var formidable = require('formidable'),
        http = require('http'),
        util = require('util');
     
    http.createServer(function(req, res) {
      if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
        // form变量里存的就是前段发送过来的表单信息
        var form = new formidable.IncomingForm();
        //解析这个表单
        form.parse(req, function(err, fields, files) {
            //处理这个表单里面的字段和文字
          res.writeHead(200, {'content-type': 'text/plain'});
          res.write('received upload:\n\n');
          res.end(util.inspect({fields: fields, files: files}));
        });
     //fields:里面是一些字段
          //files:就是你所上传的图片信息,如路径,格式,时间等
        return;
      }
     
      // 显示文件上传表单
      res.writeHead(200, {'content-type': 'text/html'});
      res.end(
        '<form action="/upload" enctype="multipart/form-data" method="post">'+
        '<input type="text" name="title"><br>'+
        '<input type="file" name="upload" multiple="multiple"><br>'+
        '<input type="submit" value="Upload">'+
        '</form>'
      );
    }).listen(8080);
    

    相关的API

    form.keepExtensions = false;(保留上传文件后缀名把值设为true)

    form.uploadDir="/"(设置文件放的目录)

    mock.js (模拟假数据)

    ? $npm install mockjs // 安装mockjs

    ? 注:使用mockjs必须要解决跨域问题,可以使用cors插件允许所有源访问

    // 使用 Mock
    // 模拟来自list页面的get请求
    var Mock = require('mockjs')
    var router = require('express').Router()
    router.get('/list',(req,resp)=>{
        var res_body = Mock.mock({
            // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
            'list|1-10': [{
                // 属性 id 是一个自增数,起始值为 1,每次增 1
                'id|+1': 1
            }]
        })
        // 输出结果
        resp.json({
            "res_code": 200,
            res_body
        })
    })
    
    // 模拟来自detail页面的post请求,比list会多一步接受list跳转过来的参数{id}
    var Mock = require('mockjs')
    var router = require('express').Router()
    router.post('/detail',(req,resp)=>{
        // 接受list页面请求携带的id
        var {id} = res_body
        var res_body = Mock.mock({
            // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
            'detail|1-10': [{
                'id|+1': parseInt(Math.random()*10000),
                'title': '@ctitle(20,30)',
                'price': '@float(100,1000,2,2)',
                'img': '@image(300x100, @color,#fff,png,@word)'
            }]
        })
        // 输出结果
        resp.json({
            "res_code": 200,
            res_body
        })
    })
    
    module.exports = router
    
    

    相关文章

      网友评论

          本文标题:day3.node(关于文件上传和mock模拟假数据)

          本文链接:https://www.haomeiwen.com/subject/slzuqctx.html