0

我们正在构建一个向客户端公开 REST Api 的服务,我们正在使用 jugglingdb 创建模型并表示为服务器。我想知道在 node.js 中创建 RESTful API 时是否有任何有用的模块

我尝试使用 restify,但它似乎只是 express 的淡化版本,并且似乎缺少我需要 express 的一些功能,所以我改用 express。

编辑:我们没有前端。所以我们严格来说是一个rest api服务,只是为各种客户端提供数据

4

3 回答 3

1

RESTfull API 通过 HTTP 协议获取和发布数据。一种更先进的方法是使用WebSocket [Wikipedia] npm link。尝试使用基于 Express.js 构建的Sails.js框架,该框架使用 Socket.IO 进行闪存数据传输

于 2013-06-23T22:23:19.973 回答
1

要考虑的一种方法是让事情变得轻松简单。如果你没有前端,你可以单独使用 Connect 模块而不是 Express,它是基于 Connect 构建的:

http://www.senchalabs.org/connect/

我的 Node.js RESTful API 使用这种方法很幸运。我确实得到了一些重复的模式,尤其是在解析传入的帖子数据时。但是我发现代码片段太小了,不值得放入模块中,它在某些情况下为我提供了惊人的灵活性。

另一种对我来说效果很好的方法:将所有数据发布为 JSON - 而不是发布键/值对。根据您的 API 客户端,您可能可以执行此操作。我的 API 客户端是来自网页的 jQuery AJAX 调用。发送 JSON 帖子非常容易。jQuery processData 属性允许这样做如下:

    $.ajax({
        url: '/nodeAjaxHandler',
        type: 'POST',
        data: JSON.stringify(formVals),
        processData: false,
        dataType: 'json',
        success: function(data) {
        },
        error: function(a, b, c) {
        }
    });

现在在您的 Node 服务器中接收数据就像等待正文文本加载一样简单,然后 JSON.parse 将其转换为一个对象。非常可读和易于管理。而且当你更改正在发布和接收的数据字段时,你根本不需要更改任何接口代码!

(如果你敢的话,你可以更进一步,让字段名称与你的数据库字段名称相匹配——然后你可以整合更多的代码。这对我来说有风险,但效果很好——我不确定缺点可能是什么还没有。我确实在 mySQL 查询中转义了我的所有字段名和列名。)

于 2013-06-25T11:26:44.247 回答
1

如果您使用的是 MongoDB(与 mongoose):

http://benaugarten.com/node-restful/ https://npmjs.org/package/node-restful

于 2013-07-19T05:03:23.053 回答