npm multer 文件上传

Express app 范本就不写了,仅记录一下上传部分的代码。

const fs = require('fs');
const express = require('express');
const multer = require('multer'); const multer_dest = multer({dest: 'public/uploads/'}); const async_route_wrap = fn => {
return function wrap(...args) {
const ret = fn(...args);
const next = args[args.length - 1];
return Promise.resolve(ret).catch(next);
};
}; const index = async(req, res) => { res.send(`<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file1"/>
<button type="submit">upload</button>
</form`);
}; const upload = async(req, res) => { if (!req.files) return res.json({status: 'failed.'}); const count = req.files.length;
for (let i = 0; i < count; i++) { const {originalname, size, path: upload_path} = req.files[i];
const save_path = `./public/uploads/${originalname}`; console.log(`Name: ${originalname}, Size: ${size}`); fs.renameSync(upload_path, save_path); /*
fs.readFile(file_path, (err, data) => {
fs.writeFile(new_path, data, (err) => {
if (err) {
console.error(err);
throw err;
} else {
if (i + 1 === count) {
res.json({status: 'success'});
}
}
});
});
*/
} res.json({
status: 'success'
});
}; module.exports = () => {
const router = express.Router(); router.get('/', async_route_wrap(index));
router.post('/upload', multer_dest.any(), async_route_wrap(upload)); return router;
};

看到注释的那段读写文件的code了,其实multer已经把文件保存在multer_dest.dest的文件夹下面了,在同一个文件夹下,只需要rename就行了,不需要再读写了。

Express multer 文件上传的更多相关文章

  1. express + multer 文件上传入门

    写在前面的 在web开发中,我们经常会遇到图片上传的功能,接下来我们就在express4.15.0框架中利用multer1.3.0模块来实现图片上传 开始敲代码 首先利用express-generat ...

  2. node+express实现文件上传功能

    在进行node web开发时,我们可能经常遇到上传文件的问题,这一块如果我们没有经验,可能会遇到很多坑,下面我将跟大家分享一下,实现文件上传的一些方式. 一.node+express文件上传的常用方式 ...

  3. node express formidable 文件上传后修改文件名

    //我是用php的思想来学习nodejs var express = require('express'); var router = express.Router(); var fs = requi ...

  4. Vue+axios+Node+express实现文件上传(用户头像上传)

    Vue 页面的代码 <label for='my_file' class="theme-color"> <mu-icon left value="bac ...

  5. koa2的文件上传

    使用koa2搭建文件上传服务,后端代码 const os = require('os'); const path = require('path'); const koaBody = require( ...

  6. Nodejs进阶:基于express+multer的文件上传

    关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...

  7. node.js中 express + multer 处理文件上传

    multer中间件,可以很方便的结合express处理用户表单上传的文件. 一.安装multer npm install multer 二.处理单个文件上传 const express = requi ...

  8. express文件上传中间件Multer详解

    express文件上传中间件Multer详解 转载自:https://www.cnblogs.com/chengdabelief/p/6580874.html   Express默认并不处理HTTP请 ...

  9. Express文件上传之Multer

    Express文件上传之Multer Multer是一个nodejs中间件,用来处理http提交multipart/form-data,也就是文件上传.它是在busboy的基础上开发的. 在我看来,M ...

随机推荐

  1. ActiveXObject常用方法

    function getusername() { var WshNetwork = new ActiveXObject("WScript.Network"); alert(&quo ...

  2. linux出现Redirecting to /bin/systemctl start mysqld.service,解决方法

    上去就是一个命令     /bin/systemctl start httpd.service

  3. better-scroll 介绍

    碰到一个项目,应该遵守两大规则: 1. 不要让项目产生过多的第三方依赖 2. 增强组件的应用率 尽可能的将东西写在组件里面,尽可能的将数据写活,通过组件通信来进行数据转换,用到的依赖处理,我们可以通过 ...

  4. jdk git maven Jenkins的配置

    前言 搭建Jenkins的笔记. JDK 1.  jdk 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-down ...

  5. UI的流畅度优化

    Android中所有的界面绘制工作都是在UI线程中进行的,提高UI流畅度的最核心根本在于释放UI线程.即:不在主线程中做耗时的操作. 很多人都知道,耗时的操作要放到子线程中去做,比如访问网络,比如读写 ...

  6. 在发布ASP.NET网站的时候,出现state server错误

    错误信息如下: 在发布ASP.NET网站的时候,出现state server错误: Server Error in '/' Application. ------------------------- ...

  7. JAVA记事本的图形用户界面应用程序含加密

    JAVA记事本的图形用户界面应用程序 加密 题目简介: 整体分析: 实验代码: import java.awt.EventQueue; import java.awt.event.ActionEven ...

  8. 如何在终端使用后台运行模式启动一个Linux应用程序

    这是一个篇幅不长但是十分有用的教程,可以帮助你在终端启动一个Linux应用程序,并且使终端窗口不会丢失焦点. 我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境. ...

  9. [LeetCode] Top 100 Liked Questions

    [LeetCode] Top 100 Liked Questions # Title Acceptance Difficulty 1 Two Sum 38.80% Easy 2 Add Two Num ...

  10. LeetCode.1108-使IP地址无效(Defanging an IP Address)

    这是小川的第393次更新,第426篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第257题(顺位题号是1108).给定有效(IPv4)IP地址,返回该IP地址的无效版本. ...