Comment puis-je envoyer un fichier de facteur de node.js avec multer
Windows
Express 4.12.4
Multer 1.0.1
Nœud v0.10.22
Je suis en train d'envoyer un fichier à mon node.js serveur à l'aide de facteur.
Je suis d'essayer de suivre le readme ici
Voici ce que j'envoie avec facteur:
POST /ingest HTTP/1.1
Host: localhost:3000
Cache-Control: no-cache
Postman-Token: 69dd2497-2002-56ed-30a4-d662f77dc0b0
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Voici à quoi il ressemble:
Voici ce que c'est de frapper sur node.js
var Ingest = require('../controllers/ingest.js');
var multer = require('multer');
var upload = multer({ dest: 'uploads/',fileFilter:function(req,file,cb){
console.log('file is',file)
cb(null,true);
}
});
module.exports = function (app) {
app.post('/ingest', upload.single('test'), function(req, res, next) {
console.log(req.body);
console.log(req.file);
Ingest.ingestData()
.then(function (response){
return res.status(200).json(response);
});
});
}
Lorsque j'ai pris cette route, facteur-je obtenir {}
pour req.body
et undefined
pour req.file
.
Ce que je fais mal?
Voici où j'initialise le app
qui est transmis à la route de fichier:
var express = require('express');
var app = express();
var http = require('http');
var cfg = require('./config')();
var passport = require('passport');
var cors = require('cors');
var bodyParser = require('body-parser');
app.set('port', process.env.PORT || cfg.port);
var corsOptions = {
origin: "*",
allowedHeaders: ['Content-Type', 'Authorization', 'Accept', 'x-reset-token', 'x-invite-token', 'x-api-key', 'x-www-form-urlencoded'],
credentials: true
};
app.use(cors(corsOptions));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
Peut-être quelque chose là-bas est en train de faire?
Edit:
J'ai même essayé de
var Ingest = require('../controllers/ingest.js');
var multer = require('multer');
var upload = multer({ dest: 'uploads/',fileFilter:function(req,file,cb){
console.log('file is',file)
cb(null,true);
}
}).single('csv');
module.exports = function (app) {
app.post('/ingest', function(req,res){
upload(req, res, function(err) {
if(err){
console.log(err);
}
console.log(req.body);
console.log(req.file);
Ingest.ingestData()
.then(function (response){
return res.status(200).json(response);
});
});
});
}
Et qui n'a pas aidé. Il ne veut pas se connecter quoi que ce soit pour err
Dans la capture d'écran, il vous manque
oh, ce que c'était? Poster une réponse et je peux l'accepter
csv
clé pour le nom de fichier.oh, ce que c'était? Poster une réponse et je peux l'accepter
OriginalL'auteur Houseman | 2015-07-30
Vous devez vous connecter pour publier un commentaire.
En Facteur capture d'écran, le fichier nom de champ est manquant. La clé doit être
csv
depuis Multer accepte seul fichier avec ce nom.OriginalL'auteur hassansin
Cela aiderait les autres comme moi qui sont à la recherche d'une semblable réponse.
J'ai utilisé une demande curl à la place du Facteur.
Il semble y avoir un problème avec Facteur.
https://github.com/expressjs/multer/issues/317
OriginalL'auteur mythicalcoder
Juste supprimer l'en-tête Content-Type:application/x-www-form-urlencoded de passage du facteur.
Votre réponse a travaillé pour moi, donc je suis à droit de vote vous mate.
A travaillé pour moi. Merci
merci lol je cherchais la même chose et c'était la seule chose qui l'empêchait de travailler avec multer(nodejs)
Merci!!!! Cela m'a aidé ! 🙂
OriginalL'auteur taman neupane