我正在尝试将ExpressJS配置为接受传入的XML文件进行解析。我已经读过bodyParser已经弃用了对xml的支持,我根本无法弄清楚如何使我的应用程序接受传入的xml并存储它。
由于外部服务器要求我的站点上线以发送xml文件,因此我一直在使用本地测试技术构建。也就是说,我创建了一个上传表单,该表单将成功执行我想要的操作,上传xml文件并将其存储为目标网址。
当我将这些更改推送到服务器并使用外部服务器定位相同的URL时,xml文件在传输过程中会丢失,并且永远不会存储。
假设来自另一台服务器的POST会自动放入传真目录中,我错了吗?
在我的快速配置
中app.use(express.bodyParser( { keepExtensions: true, uploadDir: path.join(__dirname, '/faxes')}));
答案 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
});
});
});