文件上传
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
网友评论