【问题标题】:NodeJS + expressJS: server-side vs. client-side html rendering [closed]NodeJS + expressJS:服务器端与客户端 html 渲染 [关闭]
【发布时间】:2015-01-03 01:46:20
【问题描述】:

我是 nodejs 的新手,对服务器端和客户端 html 页面之间的区别有点困惑。我的目标是建立一个电子商务网络商店以供练习。我想尝试的堆栈是 NodeJS + Express + MongoDB + AngularJS。我现在的基本结构如下。

shoppingMall
..bin
..data
..node_modules
..public
....images
....javascripts
....stylesheets
..routes
....index.js
....users.js
..views
....index.jade
....layout.jade
..app.js
..package.json

这是我的逻辑。 views 中的文件是从服务器呈现的 html 页面。 public/javascripts/ 中的 Javascript 文件在客户端呈现。我必须在layout.jade 中包含AngularJS,并且任何与索引页面相关的客户端代码都应该转到public/javascripts/index.js,并且我必须包含来自index.jade 的这个文件。然后,使用玉模板引擎从服务器呈现 html 页面,并从客户端完成任何进一步的用户交互。任何与index.jade 相关的服务器端逻辑都必须转到routes/index.js,并且此文件中的代码不会显示给客户端。

第一季度。我的逻辑正确吗?

第二季度。假设我试图将其保持为 MVC 结构,在这种情况下,哪些部分对应于 M、V、C?

【问题讨论】:

    标签: javascript angularjs node.js express


    【解决方案1】:

    第一季度。我的逻辑对吗?

    我的经验表明你的逻辑不正确。因为当我们使用 Angularjs 时,不需要服务器端模板引擎(在你的情况下是玉)。 Angular 本身能够渲染动态数据。

    您可以在这里做的是使用 node 和 express 为您的购物车的所有功能构建 API 端点,然后在 Angular 中编写所有视图(前端和后端)。

    第二季度。假设我试图将其保持为 MVC 结构,在这种情况下,哪些部分对应于 M、V、C?

    在角度视图中是应用了指令和过滤器的 html 页面。这代表了应用程序的 UI 端。控制器是视图的大脑。

    视图从控制器获取数据以进行显示。控制器通常使用服务或工厂从 API 获取数据。控制器使用一个名为 $scope 的对象将数据传递到视图中。在角度世界中,您可以将此 $scope 对象视为视图模型。它将视图和控制器粘合在一起。

    所以在你的例子中,

    /public
         /javascripts
             /item
              ..item.html // view
              ..item.js   // controller (might include the services for item api calls or write a seperate js file for them)
    

    【讨论】:

    • 谢谢!但是,我认为 AngularJS 必须严格用于前端。
    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多