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

文件上传

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,654评论 1 37
  • node,npm,express 启动 1. node启动 创建 index.js 或 app.js 文件,作为入...
    HChase阅读 325评论 0 1
  • 前言:前端的任务到底是什么前端开发的本质,是数据的采集和数据的呈现,即把用户提交的数据准确安全地发送给服务器,把服...
    Jin_Simona阅读 560评论 0 0
  • 前后端分离的开发中,如果要同时进行开发,可以前端先模拟数据 mock.js 1.安装npm install moc...
    风间澈618阅读 1,316评论 0 3
  • 前不久,延禧攻略刷爆了朋友圈,都在大赞魏璎珞,自己也忍不住去看了几集,不得不说,真的还蛮喜欢她的。 她这种性格在我...
    嫝语君安阅读 536评论 0 7

友情链接更多精彩内容