Javascript Nodejs rest api删除函数

Javascript Nodejs rest api删除函数,javascript,node.js,rest,Javascript,Node.js,Rest,我正在编写nodejsrestapi。我的删除功能有问题。 这是我的html代码: <tr ng-repeat="row in displayedCollection"> <td>{{row.FirstNameAuthor}}</td> <td>{{row.LastNameAuthor}}</td> <td> <button type="button" ng-click="deleteW

我正在编写nodejsrestapi。我的删除功能有问题。 这是我的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>
这是my 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);
}
};
但它不起作用,因为主体是空的


如何修复它?

您可以在删除路由中传递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);
}

告诉我我是否回答了你的问题。

什么错误?wr是在哪里定义的?您正在尝试从数据库中删除记录吗?您考虑过使用sequelize吗?是的,我正在尝试从数据库中删除一条记录。但是我认为我在core.js中犯了一些错误。这里的一个问题是DELETE方法应该只使用查询参数,而不是主体。我还质疑是否有必要将整行发送到另一行。通常删除只取对象的ID。你的方法没有意义
DELETE/writer
表示“删除URL/writer上的资源”。不应该有请求正文。我已将其添加到代码中,但我的id在应用程序中已热定义。删除我已更新我的帖子,现在应该可以正常工作了。
   app.delete('/writer/:id', function (req, res) {

    var id = req.params.id;

    //DELETE YOUR RECORD WITH YOUR PARAM.

    return res.status(200);
}