2016-10-11 11 views
1

我想通过入站webhook使用节点,快递和multer从sendgrid存储电子邮件。在sendgrids网站上有一个示例,如下所示:Sendgrid入站webhook与节点和多路通

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(“files”,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 
    } 
});