如何使用 ng-file-upload 在 express js 中保存文件图像

How to save file image in express js using ng-file-upload

我是 nodejs 开发和 express 的新手 我学习 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 
 }

谢谢。

所以这段代码对我有用。现在我需要考虑如何将图像保存在新 post 的集合中。 Smth 喜欢 - 我点击保存图像并将图像保存在文件夹中,响应后我的 ng-model 将是 post.image = response.image,在我将 post 的所有主体保存在集合中之后.. .. 我不知道,在 PHP 中它会在一次请求中 :) 我对 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!');
 }
);
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
}); 

这段代码帮助我实现了目标。它将存储具有随机名称和扩展名的图像。