将传入的文件存储在Express JS的目录中

时间:2014-10-18 15:21:22

标签: node.js angularjs mongodb express

我正在尝试将ExpressJS配置为接受传入的XML文件进行解析。我已经读过bodyParser已经弃用了对xml的支持,我根本无法弄清楚如何使我的应用程序接受传入的xml并存储它。

由于外部服务器要求我的站点上线以发送xml文件,因此我一直在使用本地测试技术构建。也就是说,我创建了一个上传表单,该表单将成功执行我想要的操作,上传xml文件并将其存储为目标网址。

当我将这些更改推送到服务器并使用外部服务器定位相同的URL时,xml文件在传输过程中会丢失,并且永远不会存储。

假设来自另一台服务器的POST会自动放入传真目录中,我错了吗?

在我的快速配置

app.use(express.bodyParser( { keepExtensions: true, uploadDir: path.join(__dirname, '/faxes')}));

1 个答案:

答案 0 :(得分:1)

在express.js v 3+中删除了文件上传中间件,您必须自己处理文件。

以下是formidable在自定义网址路径中上传文件的示例

var formidable = require('formidable')

app.post('/xmlpath' ,req, res, next){

    var form = new formidable.IncomingForm();
    form.keepExtensions = true;
    form.parse(req, function(err, fields, files) { 

    var tempFilePath = files.file['path'],
        userFileName  = files.file['name'],
        contentType   = files.file['type'];

    // then read your file with fs 
    // you can also move your file to another location with fs 
    // by default file will be place to tempFilePath


     fs.readFile( tempFilePath, function(err, file_buffer){

    // do what you want to do with your file 
});
});
});