如果这个问题太开放,我道歉。但是我正在努力争取一些原则来开始深入研究这个问题。
我打算用这个种子构建一个相当小的演示应用程序(基于Angular 2):https://vmware.github.io/clarity/get-started
我想在Angular UI中呈现一些我保留在后端Redis数据库中的基本数据。
我试图找出我应该使用什么应用程序层来介于Redis和Angular UI之间。
我目前正在考虑使用Ruby(仅仅因为我对它有点熟悉)或Node.js.
我努力的一部分是因为我对Node.js和Angular 2之间的关系感到困惑,我想知道使用Node代码是否可以帮助我更好地和更容易地与Angular集成(而不是Ruby)。
除了使用相同的语言/语法(js)之外,我还有一种直觉,即我可以更轻松地运行Node" app.js"文件包含一些从Redis读取并将结果传递给Angular应用程序的简单业务逻辑。至少我可以在我运行Angular应用程序的同一个http实例上运行app.js逻辑(我的假设)。
如果我想使用Ruby,我必须使用一些Web框架(例如Rails或Sinatra)来处理来自Angular应用程序的请求(例如,在Angular中我将不得不调用http://myrubysrv/applogic
)。
除了语言和部署细节之外,我只是想知道如果我使用Node或者努力程度是否完全相同,是否将应用程序逻辑组件中的变量传递到Angular应用程序中是否会更容易我使用Node或Ruby。
感谢。
答案 0 :(得分:1)
这里有一些选择。 Angular 2+应用程序编译为基本上只是index.html
,它将处理其他必要视图的加载。因此,您只需要能够提供index.html
文件的内容,并且您的应用程序API可以完全独立于您的服务应用程序。根据您的托管方式,这里有很多选项(例如,托管您的前端的GitHub页面和Heroku上的后端。
Rails使得设置一个仅限API的应用程序变得轻而易举,并且与Redis配合得非常好。我会说这绝对是最简单的选择;如果您确实需要将特定于环境的配置传递给Angular应用程序,则可以在启动启动时执行此操作。
节点总是一个不错的选择,但我从未使用过Node-Redis,所以我无法告诉你挂断。我也可以说Rails可能会更容易。 但是,Angular Universal主要支持Node,唯一支持的其他平台是.NET。如果你想使用或搞乱Universal(超酷的东西),至少在服务应用程序时需要Node。
如果您正在寻找学习机会,Node还可以提供一个在Angular之外提升您的Typescript印章的机会。
答案 1 :(得分:0)
Angular与您使用的后端无关。只需从RUby或Node + Expres后端公开REST端点即可。无论如何,客户端将使用这样的东西:
http.get("/products").subscribe(...)
看看Angular与Node对话的代码示例: https://github.com/Farata/angular2typescript/tree/master/Angular4/http-node-samples