1

我是nodejs开发和表达的新手,我现在学习MEAN堆栈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 
 }

谢谢。

4

2 回答 2

1

所以这段代码对我有用。现在我需要考虑如何将图像保存在新帖子的集合中。Smth like - 我单击保存图像并将图像保存在文件夹中,响应后我的 ng-model 将是 post.image = response.image,在我将所有帖子正文保存在集合中之后......我不知道,在 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!');
 }
);
于 2015-11-15T16:04:21.260 回答
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
}); 

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

于 2016-12-02T04:49:13.117 回答