gpt4 book ai didi

node.js - 使用 Node.js、Express 和 Mongoose 上传图片

转载 作者:IT老高 更新时间:2023-10-28 21:47:31 26 4
gpt4 key购买 nike

请考虑更新的答案,这些答案包含更多最新信息,因为多年来情况发生了变化!

由于许多新的 Node.js 库很快就被淘汰了,而且无论如何我想问的关于上传图片的例子相对较少:

  • Node.js (v0.4.1)
  • express (1.0.7)
  • Mongoose (1.1.0)。

其他人是怎么做到的?

我找到了:node-formidable ,但我是一般上传图片的新手,所以我想学习一般的东西和使用 Node.js 和 Express 的方法。

最佳答案

我将第一次回答我自己的问题。我直接从源代码中找到了一个示例。请原谅可怜的缩进。我不确定在复制和粘贴时如何正确缩进。代码直接来自 Express multipart/form-data example在 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 - 使用 Node.js、Express 和 Mongoose 上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com