在我的网站上,我有类似的内容:
<div class="mdl-cell--4-col mdl-grid">
<label class="mdl-cell--6-col">Liste administrateurs</label>
<select class="mdl-cell--6-col" ng-model="adminselected" ng-options="admin for admin in listAdmins">
</select>
</div>
<div class="mdl-cell--2-col mdl-grid">
<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" style="float: right" layout-align="end center" ng-click="deleteAdmin()">Supprimer</button>
</div>
listAdmins在控制器中通过以下方式进行管理:
- 使用身份验证进行初始化:
forecastValue.authentification()
.then(function(report) {
$scope.currentName = report[0].informationUser.id_name;
forecastValue.getAdmins($scope.currentName)
.then(function(reports) {
$scope.listAdmins = reports[0].listAdmins;
console.log(reports[0].listAdmins);
}).catch(function(err) {
$scope.listAdmins= [];
console.error('Unable to fetch forecast report: ' + err);
});
}).catch(function(err) {
$scope.currentName= '';
console.error('Unable to fetch forecast report: ' + err);
});
- 删除管理员的功能,它是在发布请求后在工厂部分传输的。
$scope.deleteAdmin = function() {
forecastValue.deleteAdmin($scope.adminselected)
.then(function(report){
console.log("Changes saved");
$scope.adminmessage = "L'utilisateur "+ $scope.adminselected+" n'est plus administrateur";
}).catch(function(err){
console.error("Changes not saved");
});
forecastValue.getAdmins($scope.currentName)
.then(function(reports) {
$scope.listAdmins = reports[0].listAdmins;
}).catch(function(err) {
$scope.listAdmins= [];
console.error('Unable to fetch forecast report: ' + err);
});
};
在node.js代码中执行的MySQL请求是下一个:
function deleteAdmin(res, queryParams)
{
connection.query("DELETE FROM safeplusdb.admin WHERE name=\""+(decodeURIComponent(queryParams.admindeleted))+"\";");
res.send({
state: "OK"
});
}
因此,结果如下:
- 我使用软件Workbench检查数据库,数据被删除。
- 在网站上,没有注册,数据仍然在这里,即使我做F5或CTRL + F5。 进行更改的唯一方法是停止应用程序并使用命令“node server.js”重新启动它。
当我使用更新SQL方法时,我没有这样的问题。
如何解释?
答案 0 :(得分:0)
解决方案:
function deleteAdmin(res, queryParams)
{
connection.query("DELETE FROM safeplusdb.admin WHERE name=\""+(decodeURIComponent(queryParams.admindeleted))+"\";", function(err, records){
if(err) throw err;
connection.query("SELECT * FROM safeplusdb.admin;", function (err, records){
if(err) throw err;
adminlist=[];
for(i=0; i<records.length; i++)
{
adminlist[i]=records[i].name;
}
res.send({
state: "OK"
});
});
});
}
我们的想法是在基础上发出一个SELECT请求,插入DELETE请求,以便立即刷新Web浏览器的所有数据。它有效!