使用req.files上传文件不能使用Express 4.x

我的应用程序与file upload工作良好的Express 3.x,但升级后expression模块4.x,它不再工作。 search后,我知道原因,因为处理multipart / form-data请求的中间件身体数据被从bodyParser中间件中移除。 然后我试图安装multer ,但不能安装它,下面的错误:npm ERR! 错误:找不到兼容版本:busboy@'^0.2.6'npm ERR! 有效的安装目标:

那么接下来我可以用我的应用程序做什么,我真的想使用快递4.x,任何人都可以帮我吗? 谢谢。

脱字号( ^ )表示您想要安装一个兼容(在本例中) 0.2.6的Busboy版本。

npm用于比较版本( semver )的软件包在版本2.1.0添加了对此的支持。 从1.3.7版开始,npm使用该版本。

当你告诉它安装'^ 0.2.6'时,你的npm版本不知道该怎么做。 它被插入符号弄糊涂了。

根据你的评论,你正在运行比(1.3.5)更早的npm安装。

解决办法是更新npm。 您的节点安装本身也可能过时了,因为npm的新版本通常与节点捆绑在一起。

你需要使用body-parser中间件和multer ,因为它们不再与express捆绑在一起。

 var express = require('express') var bodyParser = require('body-parser') var multer = require('multer') var app = express() app.use(bodyParser()) //Formerly app.use(express.bodyParser()) app.use(multer({ dest: './uploads/'})) //Formerly app.use(express.multipart())