test_file_server.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const bodyParser = require("body-parser");
  2. const path = require("path");
  3. const express = require("express");
  4. const app = express();
  5. const fs = require("fs");
  6. // 解析有效路径
  7. function resolvePath (dir) {
  8. return path.join(__dirname, dir);
  9. };
  10. // 静态文件
  11. app.use(express.static(resolvePath("/public")));
  12. // 固定写法,处理 POST 请求
  13. // https://expressjs.com/en/4x/api.html#req.body
  14. app.use(bodyParser.json({ limit: "50mb" }));
  15. app.use(bodyParser.urlencoded({ extended: true }));
  16. // 一个上传的接口
  17. app.post("/upload", function (req, res) {
  18. const { fileName, fileData } = req.body;
  19. // base64 => buffer
  20. console.log(fileName)
  21. console.log(fileData)
  22. const chunk = Buffer.from(fileData, "base64");
  23. const imgUrl = resolvePath(`public/${fileName}`);
  24. // buffer 写入文件
  25. fs.writeFileSync(imgUrl, chunk);
  26. // 返回结果
  27. res.json({
  28. code: "0",
  29. message: "success",
  30. imgUrl: `http://localhost:48488/${fileName}`
  31. });
  32. });
  33. // 启动服务
  34. const port = 48488;
  35. app.listen(port, function () {
  36. console.log(`listen port ${port}`);
  37. });