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. 哨兵模式java实例

    /** * 测试Redis哨兵模式 * @author liu */ public class TestSentinels { @SuppressWarnings("resource&quo ...

  2. GNU项目

    目标在于建立一个完全相容于UNIX的自由软件环境.发展GNU系统的计划,最早由理查德•斯托曼在1983 年启动,它是自由软件基金会最早致力的目标.最近一个GNU系统版本,是于2011年4月1日释出的G ...

  3. 深度学习之NLP维基百科数据模型

    知识点 """ 1) from gensim.model import Word2Vec import jieba 2) opencc :将繁体字转换为简体字 转换命令: ...

  4. tensorflow实现线性回归总结

    1.知识点 """ 模拟一个y = 0.7x+0.8的案例 报警: 1.initialize_all_variables (from tensorflow.python. ...

  5. C++中 关于操作符的重载

    C++实现了类的定义,也可以对类之间的操作符进行定义,又叫重载. 例如同类之间的 加.减法,赋值等等操作. 具体看http://blog.csdn.net/zhy_cheng/article/deta ...

  6. JavaScript日常学习1

    您会经常看到 document.getElementById("id"). 这个方法是 HTML DOM 中定义的. DOM (Document Object Model)(文档对 ...

  7. httpClient模仿Basic Auth

    httpclient代码调用如下: @GetMapping("loginTest") public String httpClientWithBasicAuth() { Strin ...

  8. mariadb数据库(3)连接查询,视图,事务,索引,外键(优化)

    --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20 ...

  9. Java语言 List 和 Array 相互转换

    Java语言 List 和 Array 相互转换 List集合 转换为 Array数组 List集合 转换成 Array数组,有 2 种方式,代码如下: import java.util.ArrayL ...

  10. Centos6.4安装配置mysql

    大数据开发需要读取关系型数据库内的数据,学习过程中主要使用mysql进行学习,以下记录mysql的安装与配置过程. 1.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司 ...