如何使用 NodeJS + AngularJS 从文件中删除一些奇怪的错误
Posted
技术标签:
【中文标题】如何使用 NodeJS + AngularJS 从文件中删除一些奇怪的错误【英文标题】:How to remove weird errors deleting something from a file using NodeJS + AngularJS 【发布时间】:2018-08-28 06:06:59 【问题描述】:这个问题是关于 NodeJS 如何处理 HTTP 响应的知识
我正在尝试使用 NodeJS 和 AngularJS 从 json 文件中删除一个字段。 删除有效,但有两个问题:
在 json 修改后,前端的视图没有得到更新(POST 函数,使用$scope.$apply
工作并更新视图)
刷新页面会显示delete error
窗口(为什么不在当前页面中?),但关闭窗口会显示没有选定元素的列表
简而言之,发生了什么: Lista(我的 JSON)包含 A、B、C、D 元素 -> 删除(B)-> F5-> “删除错误”-> Lista 包含 A、C、D
我的控制器:
$scope.remove = function (daRimuovere)
var del = $scope.lista3.indexOf(daRimuovere);
$http.delete('http://localhost/delete/' + del)
.then(function ()
$http.get('http://localhost/files/lista.json')
.then(
function (result)
$scope.lista3 = result.data;
,
function ()
window.alert('Errore get!');
);
window.alert('Delete success');
$scope.$apply;
,
function ()
window.alert('Errore delete');
)
;
我的 NodeJS 函数
server.delete('/delete/:id', function (req, res)
jsonfile.readFile('./public/lista.json', function (err, obj)
if (err)
console.log(err);
else
console.log('id= '+ req.params.id);
obj.splice(req.params.id, 1);
jsonfile.writeFile('./public/lista.json', obj, function (err)
if (err)
console.log(err);
else
console.log(obj);
obj = JSON.stringify(obj, null, "\t");
)
);
);
【问题讨论】:
【参考方案1】:我正在回答我自己的问题,以防有人从 NodeJS 收到奇怪的错误。 Delete 函数中的错误是我没有返回 HTTP 显式响应,因此 Angular 不知道服务器上是否一切正常。 我的解决方案是这样的:
(...)
jsonfile.readFile('./public/lista.json', function (err, obj)
if (err)
console.log(err);
else
console.log('id= '+ req.params.id);
obj.splice(req.params.id, 1);
res.sendStatus(200); //this sends a OK from the server
【讨论】:
以上是关于如何使用 NodeJS + AngularJS 从文件中删除一些奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?
使用 Angularjs 和 Nodejs 从 HTML 表单另存为 JSON 文件
如何将数据从 AngularJS 前端传递到 Nodejs 后端?