Ember 与 Node(MEEN 堆栈?)
Posted
技术标签:
【中文标题】Ember 与 Node(MEEN 堆栈?)【英文标题】:Ember with Node (MEEN stack?) 【发布时间】:2014-01-24 09:41:26 【问题描述】:一年多来,我一直在 Rails 平台上构建应用程序。话虽如此,如果您可以与 Rails 等价物进行任何比较,它可能会对所有相关方有所帮助。只是一个想法。
无论如何,我正试图围绕节点和前端框架 ember。我最初对偶然发现MEAN stack 很感兴趣。在深入研究之后,我意识到我并不太喜欢 angular,并开始寻找替代品。 Ember 看起来非常棒,而且没有 DOM 的所有 ng-
标记,语法看起来更简洁。我想试验一下 mongoDB,我觉得这种方法会教给我很多东西。
我想我的问题是 Express。使用 Node 时 Express 的作用是什么?似乎 Ember(甚至 Angular,就此而言)有一个非常有表现力的路由器。在我对这一切的有限理解中,我认为 Express 是用于路线的?我找到了this,这似乎是一个 MEEN 堆栈。
MEAN 的 package.json 很大,但我链接到的那个 MEEN 非常小,只有 express、mongoose 和 request。我想,另一个问题是 MEAN / MEEN 堆栈中的不同角色是什么?那有意义吗?我有点漫无边际,大声笑,但我希望继续研究和玩这些东西,直到我有那个“啊哈!”时刻,你知道吗?
mongoose - 似乎是与 mongoDB 交互的更好方式?
express - 特定于节点的路由?
request - 看起来很简单。向网络上的其他页面发送外部请求。我看不到 MEAN 中的等效包,这真的需要吗?
grunt - 运行一堆东西,以便所有不同的部分很好地结合在一起?
非常感谢任何解释、链接或帮助。
【问题讨论】:
Express 是 node 的中间件,本质上,它使 node 的工作变得更容易(定义路由、插件等)。 Mongoose(如你所说)有助于与 Mongo 的交互。 IMO,Mongo 本身并不是很难使用,我通常更喜欢没有插件。 我已经习惯了数据库“在”应用程序中。使用 rails,它位于 db 文件夹中,我可以打开它并使用 SQL 查看器查看它。关于如何将 mongo 指向我的应用程序中的某个位置以及如何“查看”数据的任何见解? 嗯,MongoDB 将通过连接字符串(典型的东西)连接到 - 至于查看数据,我使用 RoboMongo。漂亮的 GUI 并且很容易使用。然而,大多数时候你可以通过终端连接并从那里运行 shell 命令。 K... 我正在查看mean.io 为我设置的文件夹,这里... 连接字符串在哪里?我必须先启动mongod
,然后启动grunt
才能让服务器运行。知道对数据库的调用在哪里吗?
那是使用 Mongoose,结帐 app/models/user.js
【参考方案1】:
如果你来自 Rails,我会这样分解:
node.js -> Ruby - 你的服务器端语言/平台
express -> Rails - 你的服务器端框架,虽然有点像 Sinatra
grunt -> Rake - 你的预处理器/构建工具
npm -> gem - 你的服务器端包管理器
Angular.js / Ember.js -> 没有直接映射,你的客户端框架。
mongoose.js -> ActiveRecord,但用于 MongoDb。如果你想要一个 SQL ORM 使用 Sequelize
另外两个值得学习的工具是
bower -> 你的 客户端 包管理器,用于引导程序
yeoman -> 全面的 js 应用程序脚手架,将所有内容联系在一起,是了解如何搭建“最佳实践”应用程序的好工具。
【讨论】:
我没有和猫鼬建立这种联系......很好。我现在把它捡起来。我有一个带有 mongoid 的 rails 应用程序,只是为了帮助我把头绕在文档存储上。我一直在修补角度,这也开始变得更有意义了。不过谢谢!这确实清除了一些东西。 我喜欢这样的答案;让转换变得更容易:)以上是关于Ember 与 Node(MEEN 堆栈?)的主要内容,如果未能解决你的问题,请参考以下文章
Node.js + mongoose [RangeError: 超出最大调用堆栈大小]