javascript - Nodejs rest api删除函数

标签 javascript node.js rest

我正在编写 nodejs 休息 API。我的删除功能有问题。 这是我的 html 代码:

<tr ng-repeat="row in displayedCollection">
    <td>{{row.FirstNameAuthor}}</td>
    <td>{{row.LastNameAuthor}}</td>
    <td>
    <button type="button" ng-click="deleteWriter(row)" class="btn btn-sm btn-danger">
    </button>
    </td>
</tr>

这是我的 core.js 代码:

$scope.deleteWriter = function (row) {
    $http.delete('/writer', $scope.row)
          .error(function (data) {
            console.log('Error: ' + data);
          });
    };

这是我的 server.js 代码:

app.delete('/writer', function (req, res) {
    var reqBody = '';

    req.on("data", function (data) {
        reqBody += data;
        if (reqBody.length > 1e7) {//10MB
            httpMsgs.show404(req, res);
        }
    });
    req.on("end", function () {
        wr.delete(req, res, reqBody);
    });
})

然后我使用函数 wr.delete 从数据库中删除记录。

exports.delete = function (req, resp, reqBody) { 

try {
    if (!reqBody) throw new Error("Input is nod valid");
    var data = JSON.parse(reqBody);
    if (data) {
        if (!data.idRegisterIssueContract) throw new Error("No such number");
        var sql = "DELETE FROM registerissuecontract ";
        sql += " WHERE idRegisterIssueContract =" + data.idRegisterIssueContract;
        db.executeSQL(sql, function (data, err) {
            if (err) {
                httpMsgs.show500(req, resp, err);
            }
            else {
                httpMsgs.send200(req, resp);
            }

        });
    }
    else {
        throw new Error("Input is nod valid");
    }
}
catch (ex) {
    httpMsgs.show500(req, resp, ex);
}
};

但是它不起作用,因为 reqBody 是空的。

我该如何解决?

最佳答案

您可以在删除路由中传递一个 id,如下所示:

客户端:

 $http.delete('/writer/' + id)
        .success(function(data) {
         console.log('Success: ' + data);
        })
        .error(function(data) {
            console.log('Error: ' + data);
        });

服务器端:

   app.delete('/writer/:id', function (req, res) {

    var id = req.params.id;

    //DELETE YOUR RECORD WITH YOUR PARAM.

    return res.status(200);
}

如果我已经回答了你的问题,请告诉我。

关于javascript - Nodejs rest api删除函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37774994/

相关文章:

javascript - WCF REST 身份验证 - 确定 Web 请求

javascript - 如何使用 MikroORM 插入对象图?

Javascript TRUE 和 "true"为什么有人使用字符串而不是 boolean 值?

Node.js/Nowjs - 移动 Sprite 并跟踪服务器端时间

javascript - 有人可以解释一下 howtonode 中的函数包装习惯吗?

node.js - 仅在 NodeJS 和 ExpressJS 中满足条件后才更新密码

javascript - Angular2 数据表的搜索/过滤组件

javascript - Firefox javascript错误函数 "undefined"在IE中工作正常

api - 依赖于授权的 REST API

java - Spring Boot - 如何在单个 POST 请求中创建实体和嵌套实体