节点 - 删除引用文件的字符串数组
Node - Delete an array of strings referenced to files
在 Angular 中,我正在传递一个字符串数组,其中包含对我要删除的文件的引用:
let filesToDeleteOnCancel = ["file1.png", "file2.png", "file3.png"];
this.http.delete(this.apiDomain + '/api/gameCentre/deleteAssets', filesToDeleteOnCancel).subscribe((data: any) => {
console.log(data);
}, error => {});
这似乎工作正常。但是我对节点 api 感到困惑,不知道如何传递这个数组以便删除文件。到目前为止我有:
router.delete('/deleteAssets/', function(req, res) {
console.log("How can I get the array here?");
try {
var files = ['../game/src/file1.png', '../game/src/file2.png', '../game/src/file3.png'];
files.forEach(path => fs.existsSync(path) && fs.unlinkSync(path))
// success code here
} catch (err) {
// error handling here
console.error(err)
}
});
将您的 HTTP 方法更改为 POST
并通过 body
发送。您可以通过 req.body
访问正文。您可能还需要使用 Node.js body parsing middleware.
let filesToDeleteOnCancel = ['../game/src/file1.png', '../game/src/file2.png', '../game/src/file3.png'];
this.http.post(this.apiDomain + '/api/gameCentre/deleteAssets', filesToDeleteOnCancel).subscribe((data) => {
console.log(data);
}, error => { });
router.post('/deleteAssets/', function (req, res) {
console.log("How can I get the array here?");
try {
var files = req.body;
files.forEach(path => fs.existsSync(path) && fs.unlinkSync(path))
// success code here
} catch (err) {
// error handling here
console.error(err)
}
});
您可以像下面这样访问请求正文:
var files = req.body;
如果输出为空,请不要忘记 body-parser。
在 Angular 中,我正在传递一个字符串数组,其中包含对我要删除的文件的引用:
let filesToDeleteOnCancel = ["file1.png", "file2.png", "file3.png"];
this.http.delete(this.apiDomain + '/api/gameCentre/deleteAssets', filesToDeleteOnCancel).subscribe((data: any) => {
console.log(data);
}, error => {});
这似乎工作正常。但是我对节点 api 感到困惑,不知道如何传递这个数组以便删除文件。到目前为止我有:
router.delete('/deleteAssets/', function(req, res) {
console.log("How can I get the array here?");
try {
var files = ['../game/src/file1.png', '../game/src/file2.png', '../game/src/file3.png'];
files.forEach(path => fs.existsSync(path) && fs.unlinkSync(path))
// success code here
} catch (err) {
// error handling here
console.error(err)
}
});
将您的 HTTP 方法更改为 POST
并通过 body
发送。您可以通过 req.body
访问正文。您可能还需要使用 Node.js body parsing middleware.
let filesToDeleteOnCancel = ['../game/src/file1.png', '../game/src/file2.png', '../game/src/file3.png'];
this.http.post(this.apiDomain + '/api/gameCentre/deleteAssets', filesToDeleteOnCancel).subscribe((data) => {
console.log(data);
}, error => { });
router.post('/deleteAssets/', function (req, res) {
console.log("How can I get the array here?");
try {
var files = req.body;
files.forEach(path => fs.existsSync(path) && fs.unlinkSync(path))
// success code here
} catch (err) {
// error handling here
console.error(err)
}
});
您可以像下面这样访问请求正文:
var files = req.body;
如果输出为空,请不要忘记 body-parser。