我已经在Node.js上创建了一个中间后端,可以与我的应用程序所依赖的多个微服务进行对话。到目前为止一切都很好。我无法解决的问题是文件处理。我的客户端以Formdata的形式将文件发送到Node层,我想将相同的表单数据重新路由到某些特定的微服务,该微服务也希望该文件也以Form数据的形式存在。我正在使用express-fileupload中间件从req
对象提取文件,但它为我提供了具有以下属性的文件数据:
req.files.file = {
data:Buffer(47643) [37, 80, 68, …]
encoding:"7bit"
md5:() => …
mimetype: "application/pdf"
mv: function (filePath, callback) { … }
name:"somefile.pdf"
truncated:false
}
如何创建客户端发送给该对象的表单数据?
答案 0 :(得分:-1)
如果我的理解正确,那么您希望在客户端向您的微服务发送请求并将服务器收到请求后,将此文件对象发送到特定的api。您的文件数据可通过所有快速中间件中的req
对象进行访问。
借助next
表达方法,您可以轻松地在中间件之间进行路由或进行下一步路由。
app.post('/upload', function(req, res, next) {
console.log(req.files.foo); // the uploaded file object
if (/*go to next middleware*/)
next();
else if (/*go to next route*/)
next('route');
}, function (req, res) {
// [next middleware]
// req.files.foo is accessible
});
// specific api should stand exactly after receiver api
app.post('/anyRoute', function(req, res) {
// [next route]
console.log(req.files.foo); // object file is already accessible
});
如果要从服务器发出请求,可以使用axios模块。