javascript - NodeJS + expressJS : server-side vs. 客户端html渲染

标签 javascript angularjs node.js express

<分区>

我是 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 中的这个文件。然后,使用 jade 模板引擎从服务器呈现 html 页面,并从客户端完成任何进一步的用户交互。任何与 index.jade 相关的服务器端逻辑都必须转到 routes/index.js 并且此文件中的代码不会显示给客户端。

Q1。我的逻辑正确吗?

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

最佳答案

Q1。我的逻辑正确吗?

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

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

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

在 Angular View 中是应用了指令和过滤器的 html 页面。这代表了应用程序的 UI 端。 Controller 是 View 的大脑。

View 从 Controller 获取数据以显示。 Controller 通常使用服务或工厂从 API 获取数据。 Controller 使用一个名为 $scope 的对象将数据传递到 View 中。在 Angular 世界中,您可以将此 $scope 对象视为 View 模型。它粘合了 View 和 Controller 。

所以在你的例子中,

/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)

关于javascript - NodeJS + expressJS : server-side vs. 客户端html渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750932/

相关文章:

javascript - 自动播放 Javascript 轮播,直到单击按钮

javascript - 从后端(Java/Jersey/REST)发送数据到前端(Angular JS)

javascript - 以 Angular 使用多个模块有什么好处?

javascript - 如何在 Node Express 中循环调用服务?

node.js - 错误 : connect ECONNREFUSED 127. 0.0.1:465 nodemailer

node.js - 使用 Sequelize 更新数据库请求 Node.Js 中给定的现有字段

javascript - 使用正则表达式验证 Javascript 中的价格

javascript - 单击按钮时 jquery 复选框选中切换

javascript - polymer 改变墨水波纹颜色

javascript - 全屏模式,显示第一张图片,需要显示点击的图片而不是第一张图片