2017-08-19 3 views
0

J'ai besoin d'une aide. J'envoie un fichier en utilisant Postman et je dois le télécharger dans le dossier requis en utilisant Node.js. J'explique mon code ci-dessous.Comment obtenir le fichier et le télécharger en utilisant Node.js et 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){ 
} 

En fait, je suis annonce le fichier en utilisant postman dont le tir écran est donnée ci-dessous.

enter image description here

Voici mon exigence est le fichier téléchargera dans le dossier requis i.e-uploads et le nom du fichier téléchargé sera de retour en réponse à l'utilisateur. Aidez-moi, s'il vous plaît.

+0

avez-vous ajouté 'app.listen (port)' dans votre dernière ligne de 'server.js'? –

+0

oui permettez-moi de modifier cela – subhra

+0

@ Mr.D: J'ai mis à jour mon poste. Avez-vous des solutions ? – subhra

Répondre

3

Vous n'avez pas utilisé le multer ici. Vous avez créé le téléchargement en utilisant multer mais vous ne l'avez pas utilisé.

Essayez le code suivant:

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 
}) 

où le téléchargement sera le téléchargement var = multer ({stockage: stockage}); variable.

+0

Comment renvoyer le nom de fichier téléchargé en tant que réponse? – subhra

+0

Tous les détails du fichier de téléchargement seront disponibles dans req.file. –

+0

J'ai fait comme ceci 'app.post ('/ upload', upload.single ('fichier'), fonction (req, res, next) { var données = {'nom de fichier': res.req.file.filename} ; res.send (données); }) 'mais il n'envoie aucune réponse. – subhra