2017-08-19 81 views
0

我需要一個幫助。我使用Postman發送文件,並且需要使用Node.js將其上傳到所需的文件夾中。我在下面解釋我的代碼。如何獲取文件並使用Node.js和Postman將其上傳

server.js:

var express=require('express'); 
var morgan = require('morgan'); 
var http=require('http'); 
var bodyParser= require('body-parser'); 
var methodOverride = require('method-override'); 
var mongo = require('mongojs'); 
var session = require('express-session'); 
var app=module.exports=express(); 
var server=http.Server(app); 
var port=8889; 
var api=require('./api/api.js'); 
app.use(express.static(__dirname + '/public'));  // set the static files location /public/img will be /img for users 
app.use(morgan('dev'));      // log every request to the console 
app.use(bodyParser.urlencoded({ extended: false,limit: '5mb' })) // parse application/x-www-form-urlencoded 
app.use(bodyParser.json({limit: '5mb'})) // parse application/json 
app.use(methodOverride());  
app.post('/upload',api.upload);  
server.listen(port); 
console.log("Server is running on the port"+port); 

api.js:

var multer = require('multer'); 
var storage =multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './../uploads'); 
    }, 
    filename: function (req, file, callback) { 
    callback(null, Date.now()+'-'+file.originalname); 
    } 
}); 
var upload = multer({ storage: storage}); 
exports.upload=function(req,res){ 
} 

其實我張貼使用postman其截屏如下的文件。

enter image description here

這裏我的要求是該文件將上傳到所需的文件夾i.e-uploads和上傳的文件名會返回爲響應用戶。請幫幫我。

+0

你接着說:app.listen(端口)''中的server.js'你的最後一行? –

+0

是的,讓我編輯 – subhra

+0

@ Mr.D:我更新了我的帖子。你有什麼解決辦法 ? – subhra

回答

3

你還沒有真正這裏使用的multer。你已經使用Muller創建了上傳,但是你沒有使用它。

嘗試以下代碼:

app.post('/upload', upload.single('file'), function (req, res, next) { 
    // req.file is the `file` file 
    // req.body will hold the text fields, if there were any 
}) 

其中上傳將是VAR上傳= multer({存儲:存儲});變量。

+0

如何返回上傳的文件名作爲響應? – subhra

+0

上傳文件的所有細節將在req.file中可用。 –

+0

我喜歡這個'app.post('/ upload',upload.single('file'),function(req,res,next)var data = {'filename':res.req.file.filename} ; res.send(data); })'但它不發送任何響應。 – subhra

相關問題