如何通过nodejs
和mongodb
创建网络图库并上传,存储和显示图片?
我曾尝试自己编写一些代码,但没有设法解决问题。
有人有链接或教程可以帮我解决问题吗?
答案 0 :(得分:0)
不建议将整个图像存储在数据库中。它可以完成,但基于堆栈溢出的类似问题,最好将图像存储在您的文件系统上。这可以通过使用multer
和fs
模块来处理上传并将其存储在文件系统上来完成。您甚至可以使用图像处理器来确认上传的内容实际上是图像而不是其他内容。我建议使用npm上的sharp
模块来做到这一点。通过这种方式,您可以确保不会出现任何问题,甚至可以在存储之前调整图像大小。以下是使用express.js的一些代码:
var multer = require('multer');
var uploadPicture = multer({
dest: 'temp/'
});
var sharp = require('sharp');
app.post('/upload', uploadPicture.single('profileIcon'), function (req,res) {
fs.readFile(req.file.path, function (err, data) {
if (err) res.end('UNRESOLVABLE ERROR');
sharp(data).resize(200, 200).toFile('./photos/pic.jpg', function (err, info) {
//DELETE THE TEMPORAL FILE
fs.unlink(req.file.path, function (error) {
if (error) res.end('UNRESOLVABLE ERROR'); //CODE 3 ALARM
res.end('success');
});
}