繁体   English   中英

Node.js REST API服务中使用的基于资源的路由模块,或此类服务的其他有用模块

[英]Resource based routing module used in a Node.js REST API service, or other useful modules for this type of service

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

我尝试使用Restify,但它似乎只是Express的简化版本,似乎缺少Express所需的某些功能,因此我改用Express。

编辑:我们没有前端。 因此,我们严格来说是一个REST API服务,仅为各种客户端提供数据

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

一种考虑的方法是保持事物的轻便和简单。 如果没有前端,则可以单独使用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查询中转义了所有字段名称和列名称。)

如果您使用的是MongoDB(和Mongoose):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM