app.use(multer({dest:'./ uploads /'})。single('photo'))return“Undefined is not a function”
我正在尝试使用MULTER上传文件
我使用最新的multer(v.0.18)
我这样configuration应用程序
var express = require('express') , multer = require('multer') , app = express() , routes = require('./routes'); app.use(multer({ dest: './uploads/', rename: function (fieldname, filename) { return filename+Date.now(); }, onFileUploadStart: function (file) { console.log(file.originalname + ' is starting ...') }, onFileUploadComplete: function (file) { console.log(file.fieldname + ' uploaded to ' + file.path) done=true; } }).single('photo'));
并且它一直返回“未定义不是函数”(指的是.single())
如果我删除.single到multer({ dest: 'uploads/' });
这个错误消息已经消失了,但是当然文件本身变成了未定义的,所以没有任何东西被上传。
工作了一天,男人! 显然需要帮助:'(
这是我如何使用multer
,希望这可以帮助你:(创build一个目录,并添加图片与它每个POST
请求)。
这是在routes.js
(或者你发布代码的文件名):
var storage = multer.diskStorage( { destination: function (req, file, cb) { var destFolder =__dirname + '/../uploads/' + req.params.id; //create folder if does not exists if (!fs.existsSync(destFolder)) { fs.mkdirSync(destFolder); } //set folder where files will be populated cb(null, destFolder) }, filename: function (req, file, cb) { //set the names file within the folder //as the original name of the file cb(null,file.originalname); } });
然后我使用一个服务( fileUploadService.js
)来调用它,如下所示:
app.service('fileUpload', ['$http', function ($http) { this.uploadFileToUrl = function (files, uploadUrl) { var fd = new FormData(); for (var i = 0; i < files.length; i++) { fd.append('file', files[i]); } $http.post(uploadUrl, fd, { transformRequest: angular.identity, headers: { 'Content-Type': undefined } }) .success(function () { console.log("images files upload success"); }) .error(function () { console.log("images files upload fail"); }); } }]);
这对我来说是完美的,希望你也能适应。 我明白这个挫折,因为这也让我花了一些时间才得到正确的答案。
您安装了旧版本。 您尝试使用的API仅在最新版本中引入(可能从v1.0.0开始)。
你可能会检查你的package.json
是不是限制了什么版本的multer
被安装。
我还应该指出,升级时需要multer
修改一下multer
选项: onFileUploadStart
和onFileUploadComplete
不再存在,现在rename
为filename
(但是具有不同的asynchronous函数签名)。
- 跟踪multer nodejs中file upload的进度
- Node JS如何将请求数据与请求数据一起POST到另一个服务器/ api
- pipe道可读stream使用superagent
- 如何以angular度显示图像(图像在服务器端上传文件夹和angularjs在不同的服务器上工作)?
- 如何调整图像大小并使用nodejs中的multer上传到s3并使用easy-image npm模块?
- POST和GET图像到/从Angular的MongoDB
- Fille上传node.js,multer,imagemagick无法正常工作
- 如何用Nodejs和Multer发布图片?
- 在节点js中的特定数据库操作之后使用multer上传文件