Eu preciso de uma ajuda. Estou enviando arquivo usando o Postman e preciso carregá-lo dentro da pasta necessária usando o Node.js. Eu estou explicando meu código abaixo.
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){
}
Na verdade, estou postando o arquivo usando postman
cuja captura de tela é fornecida abaixo.
Aqui minha exigência é o arquivo será enviado para a pasta necessária i.e-uploads
e o nome do arquivo carregado retornará como resposta ao usuário. Por favor me ajude.
Respostas:
3 para resposta № 1Você não usou o multer aqui. Você criou o upload usando o material, mas não o usou.
Tente o seguinte código:
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
})
onde o upload será o var upload = multer ({storage: storage}); variável.