我们如何使用 HTTP 请求方法将 CSV 文件从 angular 应用程序传递到服务器上的节点应用程序 运行
How can we pass a CSV file using HTTP request methods from an angular application to a node application running on a server
我在 angular 中创建了一个前端应用程序,并使用 HTTP 服务方法向服务器发送请求(包含 node.js 代码)。在前端,我创建了一个 csv 文件,该文件保存在 angular 组件的同一目录中。我想使用 HTTP 服务方法将文件发送到服务器(包含 node.js 代码)。我创建了以下代码:
客户端(前端)代码,开发于angular.js:
uploadCSVFileOnServer(){
let file = new File([""], "./abc.csv"));
let formData = new FormData();
formData.append("userForm", file);
let userData = {
firstName : "ABC",
lastName : "DEF",
userFormData: formData
}
this.http.post('url', userData)
.subscribe(()=>{
console.log("File uploaded successfully");
})
}
现在 http.post()
方法将请求发送到服务器上 node.js 运行 中编写的方法 (getFile()
)。 node.js代码(服务端代码)如下:
getFile(req, res){
let file = req.body.userData.userFormData ;
// PROBLEM: 'file' is an empty object here
}
我的疑问是,我从客户端发送了一个 javascript 对象,其中还包含 FormData 对象(具有键 userFormData
)。但是当我尝试在服务器端的 getFile()
方法中获取 FormData
对象时,我得到一个空对象,它也不是 FormData
.
类型
问题是什么? FormData.append()
不在客户端工作吗?
FormData
对象是一个奇异对象,不能作为 JavaScript 对象的 属性 发布。
改为将 JSON 数据附加到 FormData 对象:
uploadCSVFileOnServer(){
let file = new Blob([""], {type: "application/csv"});
let formData = new FormData();
formData.append("csvFile", file, "abc.csv");
let userData = {
firstName : "ABC",
lastName : "DEF",
//userFormData: formData
}
formData.append("userData", JSON.stringify(userData));
this.http.post('url', formData)
.subscribe(()=>{
console.log("FormData uploaded successfully");
})
}
我在 angular 中创建了一个前端应用程序,并使用 HTTP 服务方法向服务器发送请求(包含 node.js 代码)。在前端,我创建了一个 csv 文件,该文件保存在 angular 组件的同一目录中。我想使用 HTTP 服务方法将文件发送到服务器(包含 node.js 代码)。我创建了以下代码:
客户端(前端)代码,开发于angular.js:
uploadCSVFileOnServer(){
let file = new File([""], "./abc.csv"));
let formData = new FormData();
formData.append("userForm", file);
let userData = {
firstName : "ABC",
lastName : "DEF",
userFormData: formData
}
this.http.post('url', userData)
.subscribe(()=>{
console.log("File uploaded successfully");
})
}
现在 http.post()
方法将请求发送到服务器上 node.js 运行 中编写的方法 (getFile()
)。 node.js代码(服务端代码)如下:
getFile(req, res){
let file = req.body.userData.userFormData ;
// PROBLEM: 'file' is an empty object here
}
我的疑问是,我从客户端发送了一个 javascript 对象,其中还包含 FormData 对象(具有键 userFormData
)。但是当我尝试在服务器端的 getFile()
方法中获取 FormData
对象时,我得到一个空对象,它也不是 FormData
.
问题是什么? FormData.append()
不在客户端工作吗?
FormData
对象是一个奇异对象,不能作为 JavaScript 对象的 属性 发布。
改为将 JSON 数据附加到 FormData 对象:
uploadCSVFileOnServer(){
let file = new Blob([""], {type: "application/csv"});
let formData = new FormData();
formData.append("csvFile", file, "abc.csv");
let userData = {
firstName : "ABC",
lastName : "DEF",
//userFormData: formData
}
formData.append("userData", JSON.stringify(userData));
this.http.post('url', formData)
.subscribe(()=>{
console.log("FormData uploaded successfully");
})
}