31

Node.js 中是否有任何工具或框架允许您在数据库中创建表并像 Rails 一样自动生成 RESTful API?

非常感谢!

4

2 回答 2

29

我想这取决于你想要什么:

  • Rails 样式代码生成(它为您生成可以修改的代码)
  • Django 风格的半魔法,其中管理表单可以从表/文档模式中的字段派生。
  • 您的意思是为数据库中的这些字段生成一个 API,就像葡萄对 Ruby 所做的那样——您进行一些配置并将数据转换为 JSON 并通过网络传输回为您处理
  • 您有一个新项目,并且正在寻找具有这三个特征之一的框架

对于前三个选项,已经有一些相关的 SO 问题:

这组链接中有一些很棒的答案,包括:

  • @jsalonen 的回答收集了一些工具<-主要是关于生成管理 UI
  • @Dow用一些工具回答<--他提到了 RailwayJS(现在是 CompoundJS),然后指出了关于这个主题的其他一些 SO 问题/答案。
  • @bergie 关于将 JugglingORM 模型自动公开为 RESTful API 路由的模块的回答
  • 或者,正如评论中提到的@Andbdrew,有node-restify
  • 你可以编写你自己的生成器——也许你可以编写一个 Cake 任务,它接受一个模板文件,执行一些 Javascript 并为你的应用程序输出一个视图。我自己最近开始走这条路。当然,对于 Node.js 应用程序涉及的各种技术(不同的 ORM 选择、Javascript 前端、CSS 布局),这可能是有道理的。

对于最后一个选项 - 一个自以为是的快速 Web 开发 Node.js 框架,它提供良好的 API 支持,有几个选项:

我最初把这些都去掉了,因为我假设你可能有一个现有的项目,或者不想使用一个固执己见的框架,但添加它们是因为为什么不这样做。

于 2013-06-06T02:24:36.240 回答
15

SailsJS ( https://github.com/balderdashy/sails ) 正是您正在寻找的。它使用Waterline模块进行模拟ActiveRecord。只需定义一个资源,它将自动为所有 RESTful 操作创建 JSON 端点,并使端点与 Socket.io 连接兼容。

它基于 Express 构建,因此您可以使用任何 Connect 中间件对其进行扩展。AFAIK 它是framework构建 API 后端的最佳 NodeJS。

定义新资源就像sails generate user. 这将创建适当的模型和控制器文件,然后您可以对其进行修改。

请记住,Sails 在构建时考虑了无模式数据存储,因此它主要支持 MongoDB,而不是 MySQL。我不确定它对 SQL 数据库的支持程度(如果有的话)。

于 2013-06-06T04:34:41.887 回答