express+multer抛出错误:'app.use() requires middleware functions'
利用node,想要通过表单传递值,node的代码如下:
var express=require('express'),
//form的get方法使用url模块
url=require('url'),
//form的post方法使用url模块
bodyParser=require('body-parser'),
multer=require('multer'),
util=require('util'),
app=express();
app.use(multer({dest:'./'}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.get('/',function(req,res){
res.sendfile('./index.html');
});
app.post('/reg',function(req,res){//页面是post,服务器端也是要post
var urlObj=url.parse(req.url,true);
res.write(util.inspect(req.files));
res.end(JSON.stringify(req.body));
});
app.listen(8080);
目前express版本是4.13.3,multer的版本是1.0.1
运行抛出的错误如下:
throw new TypeError('app.use() requires middleware functions');
在stackoverflow上查找到类似的问题,但是他的原因是所使用的包的问题stackoverflow问题。
我查看了multer的文档,好像它并没有做出类似的改变。特意向大家请教这个问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这个问题以及解决了,是multer版本的问题。multer 需要装 0.1.8 的版本。
我现在升级multer 1.1.0了,也碰到同样问题,然后去他的官网了解下。
已经不能这样写了
你要在路由里面写
上面这个例子是我同时提交5个name,
他提供3个方法 .single() .array() .fields()
.single()是一个文件
例如
.array()是同样name名的多个文件
例如
.fields()是多个文件
例如
希望帮助后面的nodejs学习者
我也碰见了这个问题,请问您解决了吗?
我今天也遇到了这个问题了,然后今天顺便研究了一下,你如果要用v1.1.0版本的话可以参照我的代码
我是另外一台电脑从码云git pull 下来的是所有代码;运行时也出现这个问题;我安装了multer@0.1.8或者最新版本都无效;怎么办啊