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

标签 javascript node.js rest express

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

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

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

最佳答案

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

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

我在使用 Node.js RESTful API 时很幸运地采用了这种方法。我最终确实遇到了一些重复的问题,特别是有时在解析传入的帖子数据时。但我发现代码片段太小,不值得放入模块中,而且它在某些情况下为我提供了惊人的灵 active 。

另一种对我来说非常有效的方法:将所有数据以 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 为对象。非常可读且易于管理。当您更改发送和接收的数据字段时,您根本不需要更改任何接口(interface)代码!

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

关于javascript - Node.js REST API 服务中使用的基于资源的路由模块,或此类服务的其他有用模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17265547/

相关文章:

带有字符串变量的 Javascript 开关不起作用

javascript - 如何使用 javascript(客户端)中的变量从 node.js(服务器端)检索数据?

web-services - POST 请求不适用于本地主机的 IP 地址

javascript - 如何在页面上向上或向下移动侧边栏?

javascript - jsperf : Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node' : This node type does not support this method

javascript - Qt QWebEngineView 在发布中但在调试中找不到 javascript 文件

javascript - 如何用 Sinon 模拟 pg Pool

node.js - express.js 有主目录的概念吗?

带有正文和 header 的 Angular 7 post 请求

java - REST:未找到媒体类型=文本/纯文本的 MessageBodyWriter