Nodejs Express 使用busboy上传文件

warning: 这篇文章距离上次修改已过1635天,其中的信息可能已经有所变动。

Express 的集成度越来越小,一些附加功能都是通过中间件实现的,上传功能需要处理form-data,试用了一下busboy(在Express中使用connect-busboy),还是十分不错的。

busboy 原地址:https://github.com/mscdex/busboy

connect-busboy 地址:

connect-busboy中给出的例子十分简单,或者说十分简陋,具体功能还需要在busboy原地址中学习。

首先需要在app.js中require一下,并设置相关参数

var busboy =require('connect-busboy');

app.use(busboy({ immediate: true }));

其中immediate选项表示立即从request流读取并解析数据

然后在routes里开写吧!

var uuid = require('node-uuid')

if (req.busboy) {
    req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
		console.log(fieldname);
		console.log(filename);
		console.log(file);
		console.log(mimetype);
		if(mimetype.substr(0,5)=="image"){//我这里是上传了图片
			var id = uuid.v1();
			console.log(id);
			tmpUploadPath = path.join(conf.__uploads, id+'.jpg');
			file.pipe(fs.createWriteStream(tmpUploadPath));
			msg = {errorno:0,uuid:id,msg:"success"}
		}
    });
    req.busboy.on('field', function(key, value, keyTruncated, valueTruncated) {//处理其他非文件字段
		console.log(key);
		console.log(value);
    });
    req.busboy.on('finish', function() {//处理完毕后的回调
        res.json(msg)
    });
}

可以看到 busboy在处理form-data还是非常方便的,值得选用,如果进一步进行裁剪、缩放的功能,再结合gm之类的中间件处理应该更好

已有 7 条评论

  1. Уважаемые коллеги! Приглашаем Вас пройти обучение в сервисном центре "Хоум Маркет" по профессии "Мастер по ремонту телефонов".

    На примере действующего сервисного центра Вы научитесь:
    1) Диагностике ноутбуков, телефонов, компьютеров, мониторов, телефонов, микроволновых печей, телевизоров и прочей бытовой техники.
    2) Устранению любых неисправностей! Ремонт после залития, замена процессора на инфокраснй пояльной станции, модульной замене, чтению схем, пайке и многому другому!
    3) Кроме того мы научим Вас поиску клиентов, согламованию стоимости и сроков!
    Первое занятиен бесплатное! Пройти обучение по ремонту телефонов и ноутбуков

  2. dwlg dwlg

    gaxln NorthWood http://northwood-collection.pen.io/

  3. Банкротство (консультация)

  4. Раскрутка сайтов Нижний Новгород -
    Продвижение сайтов в Нижнем Новгороде

  5. PHONE INTERVIEW QUESTIONS https://mork-gryning.com PHONE INTERVIEW QUESTIONS

  6. tricher sur tous vos jeux vidéo mobile favoris grace à ibuxa !
    generateur

  7. https://loveawake.ru - Dewin. Dewin , , .

添加新评论