使用Node.js,Express和Mongoose上传图像 [英] Uploading images using Node.js, Express, and Mongoose

查看:200
本文介绍了使用Node.js,Express和Mongoose上传图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请考虑更多的最新信息,因为这些年来发生了变化!

由于许多新的节点.js库很快就被淘汰了,而且我想要使用最新版本的Node.js(v0.4.1),Express(1.0.7)和Mongoose(1.1.0)上传图像的例子相对较少, 。其他人如何做?

Since many new Node.js libraries are quickly being rendered obsolete and there are relatively few examples anyways I want to ask about uploading images using the latest versions of Node.js (v0.4.1), Express (1.0.7), and Mongoose (1.1.0). How have others done it?

我发现: https://github.com/felixge/node-formidable ,但我一般来说是上传图像,所以我想通过使用Node.js和Express来学习一般的东西和方法。

I've found: https://github.com/felixge/node-formidable, but I am new to uploading images in general so I want to learn general stuff and ways of doing so using Node.js and Express.

推荐答案

我会第一次回答我自己的问题。我从源头上发现了一个例子。请原谅不好的缩进。复制和粘贴时,我不知道如何正确缩进。代码直接来自Express multipart / form在

I'll answer my own question for the first time. I found an example straight from the source. Please forgive the poor indentation. I wasn't sure how to indent properly when copying and pasting. The code comes straight from Express multipart/form-data example on GitHub.

// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');

/**
 * Module dependencies.
 */

var express = require('../../lib/express')
  , form = require('connect-form');

var app = express.createServer(
  // connect-form (http://github.com/visionmedia/connect-form)
  // middleware uses the formidable middleware to parse urlencoded
  // and multipart form data
  form({ keepExtensions: true })
);

app.get('/', function(req, res){
  res.send('<form method="post" enctype="multipart/form-data">'
    + '<p>Image: <input type="file" name="image" /></p>'
    + '<p><input type="submit" value="Upload" /></p>'
    + '</form>');
});

app.post('/', function(req, res, next){

  // connect-form adds the req.form object
  // we can (optionally) define onComplete, passing
  // the exception (if any) fields parsed, and files parsed
  req.form.complete(function(err, fields, files){
    if (err) {
      next(err);
    } else {
      console.log('\nuploaded %s to %s'
        ,  files.image.filename
        , files.image.path);
      res.redirect('back');
    }
  });

  // We can add listeners for several form
  // events such as "progress"
  req.form.on('progress', function(bytesReceived, bytesExpected){
    var percent = (bytesReceived / bytesExpected * 100) | 0;
    process.stdout.write('Uploading: %' + percent + '\r');
  });
});

app.listen(3000);
console.log('Express app started on port 3000');

这篇关于使用Node.js,Express和Mongoose上传图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆