Node.js 角度-使用Node JS REST API删除文件时出现问题
我在做一个基于Angular的项目 我有一个用Node JS构建的REST API的图片列表。我的目标是添加一个允许用户删除图片的功能。我也尝试用Node JS实现它。Node.js 角度-使用Node JS REST API删除文件时出现问题,node.js,arrays,angular,api,rest,Node.js,Arrays,Angular,Api,Rest,我在做一个基于Angular的项目 我有一个用Node JS构建的REST API的图片列表。我的目标是添加一个允许用户删除图片的功能。我也尝试用Node JS实现它。 下面是代码 节点JS控制器: const remove = (req) => { const fileName2 = req.params.photo; const directoryPath = "/path/to/uploads/"; fs.
下面是代码 节点JS控制器:
const remove = (req) => {
const fileName2 = req.params.photo;
const directoryPath = "/path/to/uploads/";
fs.unlinkSync(directoryPath+fileName2); // tested with asynchronous method fs.unlink too, same result observed
};
router.get("/remove/:photo", controller.remove);
节点JS路由部分:
const remove = (req) => {
const fileName2 = req.params.photo;
const directoryPath = "/path/to/uploads/";
fs.unlinkSync(directoryPath+fileName2); // tested with asynchronous method fs.unlink too, same result observed
};
router.get("/remove/:photo", controller.remove);
角度网页:(链接到ts控制器以返回一组图片)
{{item.name}
这是部分工作,因为我可以看到在后端的图片位于我的服务器被删除。但在前端有一个奇怪的行为,因为角度网页没有停止加载,我最终得到了错误消息:
错误:enoint:没有这样的文件或目录,请取消链接
“/path/to/upload/picture_M42_20210519_0q3x44b.jpg”
我想在网页中的图片也被删除,我想了解为什么网页不能停止加载。我怎么办
非常感谢您的帮助。如果您从未在节点请求处理程序中发送响应,请将其更改为:
const remove = (req, res) => {
const fileName2 = req.params.photo;
const directoryPath = "/path/to/uploads/";
fs.unlinkSync(directoryPath+fileName2);
res.send("File was removed");
};
我的错,我为我的疏忽道歉。。非常感谢您的回答
res.send()
不会“打开”页面-它发生在客户端,因为您正在使用链接(
)执行请求。您可以简单地使用按钮
而不是链接,并通过(单击)
处理程序中的angular发送请求。您只需从myArray
内部的订阅
。因为您将项.name
传递给函数,您可能需要执行以下操作:const id=this.myArray.findIndex(element=>element.name==item)
还要确保添加对-1
的检查,这基本上意味着找不到索引。很好,现在它工作得很好,非常感谢@eol的帮助!:)