app.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * @Author: Johnhong9527
  3. * @Date: 2019-06-05 11:10:09
  4. * @Last Modified by: Johnhong9527
  5. * @Last Modified time: 2019-06-10 16:47:55
  6. * https://juejin.im/post/5a1a80a5f265da43333e1b88
  7. */
  8. var express = require('express');
  9. var formidable = require('formidable');
  10. var fs = require('fs');
  11. var crypto = require('crypto');
  12. // 引入json解析中间件
  13. var bodyParser = require('body-parser');
  14. var app = express();
  15. // 添加json解析
  16. app.use(bodyParser.json());
  17. app.use(bodyParser.urlencoded({ extended: false }));
  18. // 允许所有的请求形式
  19. /*app.all('*', function(req, res, next) {
  20. res.header('Access-Control-Allow-Origin', '*');
  21. res.header('Access-Control-Allow-Credentials', true);
  22. res.header('Access-Control-Allow-Headers', 'Content-Type,Accept,X-Requested-With,traceid,rpcid');
  23. res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS');
  24. res.header('Content-Type', 'application/json;charset=utf-8');
  25. next();
  26. });*/
  27. app.use('/public', express.static('public'));
  28. // 路由
  29. app.get('/', function(req, res) {
  30. res.send('Hello World!');
  31. });
  32. app.post('/upload', function(req, res) {
  33. var form = new formidable.IncomingForm();
  34. setTimeout(() => {
  35. // md5
  36. form.parse(req, function(error, fields, files) {
  37. // console.log('parsing done');
  38. // let fileMD5 = md5.update(new Date()).digest('hex');
  39. // let fileType = files.upload_file.type.split('/')[1];
  40. // let fileType = ;
  41. var md5 = crypto.createHash('md5');
  42. var upload_file = files.upload_file;
  43. var fileMd5 = md5.update(upload_file.name + Date.parse(new Date()) / 1000).digest('hex');
  44. var fileType = upload_file.type.split('/')[1];
  45. var fileName = fileMd5 + '.' + fileType;
  46. fs.writeFileSync('public/' + fileName, fs.readFileSync(files.upload_file.path));
  47. res.send({
  48. status: 0,
  49. data: {
  50. uri: fileName,
  51. url: 'http://localhost:3333/public/' + fileName
  52. }
  53. });
  54. });
  55. }, 200);
  56. });
  57. var server = app.listen(3333, function() {
  58. var host = server.address().address;
  59. var port = server.address().port;
  60. console.log('Example app listening at http://%s:%s', host, port);
  61. });