2016-10-11 7 views
1

Я пытаюсь хранить электронные письма от sendgrid через входящий веб-сайт, используя node, express и multer. Существует пример на сайте sendgrids, как показано ниже:Sendgrid входящий webhook с узлом и multer

var express = require('express'); 
var multer = require('multer'); 
var upload = multer(); 
var app = express(); 

app.configure(function(){ 
    app.set('port', process.env.PORT || 3000); 
    app.use(multer()); 
}); 
app.post('/parse', upload.array('files', 3) function (req, res) { 
    var from = req.body.from; 
    var text = req.body.text; 
    var subject = req.body.subject; 
    var num_attachments = req.body.attachments; 
    for (i = 1; i <= num_attachments; i++){ 
    var attachment = req.files['attachment' + i]; 
    // attachment will be a File object 
    } 
}); 

var server = app.listen(app.get('port'), function() { 
    console.log('Listening on port %d', server.address().port); 
}); 

Этот код выдает ошибку, когда письмо с вложением отправляется. Ошибка - это «непредвиденное поле». Я предполагаю, что объявление для array.upload («файлы», 3) - вот где проблема. Кто-нибудь решил это?

ответ

1

Вы можете решить эту проблему с помощью .any(), когда вы не имя поля (см documentation for any()

Вот пример кода

app.post('/parse', upload.any() function (req, res) { 
    var from = req.body.from; 
    var text = req.body.text; 
    var subject = req.body.subject; 
    var num_attachments = req.body.attachments; 
    for (i = 1; i <= num_attachments; i++){ 
    var attachment = req.files['attachment' + i]; 
    // attachment will be a File object 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^