Node.js 之 multer

很多人会一步一步的跟着 Node.js实战那本书一起走,是的,一般情况下,我们会很顺利,但是有时候会很郁闷,比如 multer.

作者用的是 0.1.6,这个已经太老旧了,现在已经是 1.1.0了,当然你可以选择旧版本,但是作为我们这种程序员,怎么能停留了。

首先会报错

hrow new TypeError(‘app.use() requires middleware functions‘);

这个不碍事,我们百度,这有一个参考:http://segmentfault.com/q/1010000003050818?sort=created

我现在升级multer 1.1.0了,也碰到同样问题,然后去他的官网了解下。

已经不能这样写了

app.use(multer({dest:‘./‘}));

你要在路由里面写

var multer = require(‘multer‘);

var upload = multer({dest: ‘./public/images/user‘});

router.post(‘/upload‘, upload.fields([
    {name: ‘file1‘},
    {name: ‘file2‘},
    {name: ‘file3‘},
    {name: ‘file4‘},
    {name: ‘file5‘}
]), function(req, res, next){
    for(var i in req.files){
        console.log(req.files[i]);
    }
    req.flash(‘success‘, ‘文件上传成功!‘);
    res.redirect(‘/upload‘);
});没错,我们在index.js应该是这样写的
var multer = require(‘multer‘);

var upload = multer({dest: ‘./public/images/user‘});

app.post(‘/upload‘, upload.fields([
    {name: ‘file1‘},
    {name: ‘file2‘},
    {name: ‘file3‘},
    {name: ‘file4‘},
    {name: ‘file5‘}
]), function(req, res, next){
    for(var i in req.files){
        console.log(req.files[i]);
    }
    req.flash(‘success‘, ‘文件上传成功!‘);
    res.redirect(‘/upload‘);
});

是的,宝贝,你可以上传了,但是上传后生成的是随机生成的名字,这个不可以有,

参考官方文档:https://github.com/expressjs/multer

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, ‘/tmp/my-uploads‘)
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + ‘-‘ + Date.now())
  }
})

var upload = multer({ storage: storage })

再修改代码:
var multer = require(‘multer‘);
var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, ‘./public/images/‘);
  },
  filename: function (req, file, cb) {
    cb(null, file.originalname);
  }
})

var upload = multer({ storage: storage });

  app.post(‘/upload‘,checkLogin);
  app.post(‘/upload‘, upload.fields([
    {name: ‘file1‘},
    {name: ‘file2‘},
    {name: ‘file3‘},
    {name: ‘file4‘},
    {name: ‘file5‘}
  ]), function(req, res, next){
    for(var i in req.files){
      console.log(req.files[i]);
    }
    req.flash(‘success‘, ‘文件上传成功!‘);
    res.redirect(‘/upload‘);
  });

  亲,你就可以了,

版本啊,版本,切记,切记。

时间: 2024-11-05 17:41:08

Node.js 之 multer的相关文章

Node.js系列基础学习----安装,实现Hello World, REPL

Node.js基础学习 1:简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好 2:安装 à安装node.js 在官网安装自己win版本的node.js的版本,下载,安装完毕后在运行中输入node -v若是出现版本号就证明安装成功. à安装n

node.js基于express框架搭建一个简单的注册登录Web功能

这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本,因为express因为版本的不同使用的方式也不同,我这算是目前最新的了吧 还没有装express的可以移步到这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令  express -e test  (这里把项目名设置为test

Node.js Express 框架

Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能的网站. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. 安装 Express 安装 Express 并将其保存到依赖列表中: $ cnpm install

Express 4.x Node.js的Web框架----《转载》

本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用. Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能. Expressd底层由Node.js的HTTP模块实现. 1.1 express 4.x 安装 express 4.x与之前的版本有了许多的变化,书里和网上的很多方法都不再适用.学

Node.js 手册查询-4-Express 方法

express 标签(空格分隔): node.js express [TOC] 安装: 新版本中命令行工具分家了 npm install -g express //安装 express 然后 npm install -g express-generator //安装 express 命令行工具 express -V 我现在查看到的版本是 4.9.0 npm start 代替 node app.js 启动 http.Server var http = require(‘http’); var se

用node.js 搭建的博客程序心得(node.js实战读书笔记1)

学习node已经有一段时间了,之前把了不起的node.js看完了,基本算了解了一些node的基本的用法还有一些概念了,然后就开始看第二本node.js实战,第一章就是搭建一个博客程序.但是不得不吐槽一下node,发展得太块了,很多库已经和之前的用法不一样了,就要一直去百度google来查询最新的用法,其实我觉得这样并不见得是一件好事,因为不稳定,所以就不好学习,就要一直保持对于node的关注.不废话了,这篇文章就大概说一些在这章里面所学习到的一些东西,经验总结吧 1.express - 基于 N

[node.js]express+mongoose+mongodb的开发笔记

时间过得很快,6月和7月忙的不可开交,糟心的事儿也是不少,杭州大连来回飞,也是呵呵. 希望下个阶段能沉浸下来,接着学自己想学的.记一下上几周用了几天时间写的课设.因为课设的缘故,所以在短时间里了解下express+mongodb的组合,给APP端搭了个简易的服务器,也开了后台网站的web服务.简单总结一下开发过程中遇到的坑. 一.关于express了解node.js有半年多,第一次用node.js的框架来写server,了解不是很深,简单看了一下文档之后就可以上手了,开发入门难度低.1.运行ex

Express 4.x Node.js的Web框架

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3821150.html 本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用. Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了We

node.js学习笔记目录

1.node.js学习笔记(1)--Node.js简介及环境安装 2.node.js学习笔记(2)--使用Express快速创建应用 3.node.js学习笔记(3)--Express创建的项目分析 4.node.js学习笔记(4)--使用Express完成简单的登陆 5.node.js学习笔记(5)--MongoDB下载及安装 6.node.js学习笔记(6)--MongoDB简单入门 7.node.js学习笔记(7)--Node.js与MongoDB简单交互 8.node.js学习笔记(8)