我正在考虑在即将到来的项目中使用node.js工具,用于学习和性能目的。For example,Rails中的一些模型:
class User
has_many :topics
has_many :friends
has_many :friend_users, :through => :friends
has_many :friend_topics, :through => :friend_users, :source => :topics
end
class Friend
belongs_to :user
belongs_to :friend_user, :class_name => "User",
:foreign_key => :phone_no, :primary_key => :phone_no
end
class Topic
belongs_to :user
end允许优雅的查询代码,如:
latest_10_topics_from_friends = current_user.friend_topics.limit(10)并生成优化的SQL。在node.js生态系统中也有类似的东西吗?
发布于 2012-07-10 03:35:05
更新的答案
老生常谈:
看看Tower项目。您可以按如下方式定义模型:
# app/models/user.coffee
class App.User extends Tower.Model
@belongsTo "author", type: "User"
@belongsTo "commentable", polymorphic: true
@has_many "topics"
@has_many "friends"
@has_many "friend_users", through: "friends"
@has_many "friend_topics", through: "friends_users", source: "topics"
# app/models/friend.coffee
class App.Friend extends Tower.Model
@belongs_to "user"
@belongs_to "friend_user", type: "User",
foreign_key: "phone_no", primary_key: "phone_no"
# app/models/topic.coffee
class App.Topic extends Tower.Model
@belongs_to "user"现在,您将能够按如下方式查询数据
current_user.friend_topics().limit(10)发布于 2013-11-13 02:54:33
水线似乎就是你要找的东西。它是由Sails项目背后的同一批人创建的。
发布于 2012-07-09 19:00:37
如果你使用的是MySql,你可以试试Sequelize.js。很难达到ActiveRecord提供的功能数量,但尽管如此,我一直在使用Sequelize,它是Node.js的一个很好的解决方案
对于其他数据库,还有几种其他的对象关系管理解决方案,您可以在这里查看http://search.npmjs.org/
https://stackoverflow.com/questions/11393438
复制相似问题