我是nodejs开发和表达的新手 我学习了MEAN stack nad现在我不知道我怎么能在n工作 在我的路线中,我有这个代码
var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({ dest: __dirname + '/public/uploads/' });
router.post('/', upload.single('file'), function(req, res) {
console.log(req.file);
res.status(200).json({ file: req.file});
});
module.exports = router;
但我保存不是图像。我如何保存图像文件?我的意思是一些解码功能还是什么?
在控制台中我看到了:
{ fieldname: 'file',
originalname: 'my.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: '/home/path/mean/public/uploads/',
filename: '8b6256d4af77641c844480f05806e959',
path: '/home/path/mean/public/uploads/8b6256d4af77641c844480f05806e959',
size: 19486
}
感谢。
答案 0 :(得分:1)
所以这段代码对我有用。现在我需要思考如何在新帖子的集合中保存图像。 Smth喜欢 - 我点击保存图像并将图像保存在文件夹上,在响应之后我的ng-model将是post.image = response.image,在我保存所有帖子的集合后.... 我不知道,在PHP中它将在一个reuqest :)我是nodejs的新手,它只是为了好玩,而不是为了工作。我喜欢JavaScript。 :)
var multer = require('multer');
var storage = multer.memoryStorage();
var upload = multer({ storage: storage });
var fs = require('fs');
fs.writeFile('public/uploads/image.jpg', req.file.buffer, 'ascii',
function (err) {
if (err) throw err;
console.log('It\'s saved!');
}
);
答案 1 :(得分:0)
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'public/upload')
},
filename: function (req, file, cb) {
cb(null, uuid.v4() + path.extname(file.originalname));
}
})
var upload = multer({
storage: storage
});
This code helped me to achieve the goal. it will store the image with random name and the extension.