为什么只在客户端使用{ },而不在Node.js中使用?

背景

在前端开发中,我们经常会看到在Vue或React等框架中使用大括号 {} 来绑定变量。例如:

----------
  ------- ------- --------
-----------

--------
------ ------- -
  ------ -
    ------ -
      -------- ------- -------
    -
  -
-
---------

这样就可以将 message 变量的值插入到模板中展示出来。

然而,在Node.js中我们很少看到这种用法。例如,在Express中,我们会使用模板引擎(如EJS)来渲染视图,但是不会使用类似Vue中的大括号。

-- -------------------------
--------------- ------------- ---- ----- -
  ------------------- - ------ --------- ---
---

这里的 { title: 'Express' } 不同于Vue中的大括号,它只是一个普通的JavaScript对象,其中的属性会被传递给模板引擎进行渲染。

那么,为什么在客户端中使用 {} 是很常见的,而在Node.js中却很少使用呢?下面我们来深入探讨一下。

原因

客户端与服务器端的职责不同

首先,客户端和服务器端的职责是不同的。在客户端,HTML、CSS和JavaScript工作在同一个环境中,都是用来渲染页面和交互的。而对于服务器端,主要是负责处理请求和返回响应,生成动态内容(如通过模板引擎渲染视图)是其中的一部分。

因此,在客户端中使用 {} 是非常自然的,因为它可以很方便地将变量绑定到HTML元素上,实现数据驱动视图的目的。而在服务器端中,生成动态内容并不是它的主要职责,因此也没有必要使用类似Vue中的大括号这样的语法。

安全性

另一个原因是安全性。在客户端,用户可以轻松地修改和注入JavaScript代码,因此使用 {} 这样的语法是比较安全的,因为它只能访问当前作用域中的变量。

而在服务器端,模板引擎通常会将传递给它的数据解析成HTML,如果直接使用 {} 语法的话,很容易导致XSS攻击(跨站脚本攻击),因为恶意用户可以在参数中注入JavaScript代码,从而进行攻击。

因此,使用类似EJS这样的模板引擎,在解析数据时可以对其进行转义和过滤,从而更好地保障了安全性。

指导意义

在实际开发中,我们应该根据具体情况选择合适的技术和工具。如果是客户端开发,使用 {} 这样的语法可以很方便地实现数据驱动视图的目的;而在服务器端,由于安全性等因素考虑,建议使用模板引擎等工具来生成动态内容。

同时,在使用模板引擎时,也要注意对传递给它的数据进行转义和过滤,以防止XSS等攻击。

示例代码

在Vue中使用{ }

----------
  ------- ------- --------
-----------

--------
------ ------- -
  ------ -
    ------ -
      -------- ------- -------
    -
  -
-
---------

在Express中使用模板引

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/9945


猜你喜欢

  • 车把/胡子有没有通过某个对象的属性建立在路环?

    前端开发中,我们经常需要操作对象的属性。有时候,我们想要查找一个特定属性的值是否存在于对象的某个子属性中,这时就需要用到“车把”或“胡子”语法。 什么是“车把”和“胡子”? “车把”(dot nota...

    7 年前
  • 回调的时候CSS3过渡完成

    在前端开发中,经常需要使用 CSS3 过渡来实现动画效果。当这些过渡完成后,我们可能需要执行一些回调函数。本文将探讨如何在 CSS3 过渡完成后执行回调,并提供示例代码和指导意义。

    7 年前
  • 如何使用 jQuery UI Datepicker 禁用周六和周日

    在网页开发中,日期选择器是一个常见的组件。jQuery UI Datepicker 是一个功能强大、易于使用的日期选择器插件,在许多项目中被广泛使用。但是,在某些情况下,我们可能需要禁用一些特定的日期...

    7 年前
  • 如何建立压缩和未压缩的束WebPACK?

    在前端开发中,构建工具Webpack是一个非常重要的工具,可以帮助我们管理模块、优化代码等。其中,将JavaScript或CSS代码进行压缩是一个常见的优化方式。本文将介绍如何使用Webpack来建立...

    7 年前
  • 如何在JavaScript客户端截图网站/谷歌是怎么做到的?

    在前端开发中,有时需要在客户端上对网站进行截图,这时候我们可以使用 JavaScript 来实现。本文将会介绍如何在 JavaScript 客户端截图网站,并探讨谷歌是如何做到无需访问硬盘来实现截图的...

    7 年前
  • 在JavaScript中,“0”等于false的解释及测试

    在JavaScript编程中,我们经常会遇到“0”和false之间的关系。尽管它们都表示“假”,但它们在JavaScript中有着不同的行为和语义。本文将探讨这两者之间的关系,并提供一些有用的指导意义...

    7 年前
  • 究竟什么会导致一个“hierarchy_request_err:DOM异常3”的错误吗?

    当我们在前端开发中使用JavaScript操作DOM时,可能会遭遇到一些异常,其中一个常见的错误是"Hierarchy_Request_Error: DOM Exception 3"。

    7 年前
  • 如何显示对象的所有方法?

    在前端开发中,经常需要查看某个对象的所有方法,以便更好地理解它们。本文将介绍几种方法来显示对象的所有方法。 1. 使用 console.log() 可以使用 console.log() 方法将对象输出...

    7 年前
  • 解析CSV数据的JavaScript代码

    CSV(comma-separated values)是一种常见的数据格式,通常用于在不同应用程序之间共享数据。在前端开发中,我们经常需要将CSV数据导入到应用程序中,并对其进行操作。

    7 年前
  • JavaScript获取智慧--你如何检查一个JavaScript对象是DOM对象?

    当我们在编写前端代码时,经常需要处理各种对象,其中包括与网页文档相关的对象,即DOM(Document Object Model)对象。但是,在某些情况下,我们需要检查一个JavaScript对象是否...

    7 年前
  • JavaScript / 铬 - 如何从 WebKit 检查员中复制一个对象

    在编写 JavaScript 代码时,有时需要创建对象,然后将其复制到另一个对象中。这可能会涉及深层嵌套的属性和方法,使得手动复制变得繁琐且易错。在本文中,我们将介绍如何使用 Chrome 开发者工具...

    7 年前
  • 获取对象的第一个索引

    在前端开发中,我们经常需要获取数组或对象的第一个元素。这个过程可能看起来很简单,但实际上有许多不同的方法可以做到这一点。在本文中,我们将深入探讨如何以最有效的方式获取对象的第一个索引,并提供示例代码和...

    7 年前
  • 有人能解释一下这种双重否定的把戏吗?[重复]

    在前端开发中,我们经常会遇到一些看似含糊不清的双重否定的表达方式,例如 if (!notFound) 或者 if (!!found) 等等。本文将对这些双重否定的把戏进行详细解释,并探讨其在实际应用中...

    7 年前
  • 我怎样才能找到一个JavaScript数组中包含的最大数?

    在前端开发中,经常需要从数组中找出最大或最小值。本文将介绍如何使用 JavaScript 来找到一个数组中包含的最大数。 数组方法 Math.max() JavaScript 提供了一个内置方法 Ma...

    7 年前
  • 如何检查变量是否为空?

    在前端开发中,经常需要判断一个变量是否为空。如果不进行空值校验,可能会导致程序出错或者产生意想不到的结果。本文将介绍几种实现变量空值校验的方法。 1. 使用 if 语句 最简单的方法是使用 if 语句...

    7 年前
  • 在字符串中只保留第一个n个字符?

    在前端开发过程中,经常会遇到需要截取字符串的场景。但是有时候我们需要的并不是简单的字符串截取,而是只保留字符串中的前几个字符。本文将介绍如何使用 JavaScript 来实现这一功能。

    7 年前
  • OnChange事件输入类型=范围不触发在Firefox中拖动时

    在前端开发中,我们经常会遇到需要监听用户交互的场景。而其中一个非常常见的场景就是表单元素的变化。对于这种情况,我们可以利用 onChange 事件来实现。 但是,在 Firefox 中,如果我们使用 ...

    7 年前
  • Onclick JavaScript使浏览器返回上一页?

    在前端开发中,我们经常需要使用JavaScript来操作浏览器的行为以实现一些功能。其中之一是让浏览器返回到上一页,这在Web应用程序中非常有用。 使用window.history.back() 让浏...

    7 年前
  • 获取下拉框选择的值

    在前端开发中,下拉框是常见的交互控件之一。获取用户在下拉框中所选的值是一个常见的需求。本文将介绍如何使用JavaScript获取下拉框选择的值。 HTML代码 首先,我们需要在HTML页面中创建一个下...

    7 年前
  • 如何将 HTML 页面滚动到给定的锚点?

    在网页设计中,锚点是一种非常有用的工具,可以帮助用户快速找到页面上的某个特定部分。然而,要让页面滚动到给定的锚点并不总是容易的。 本文将介绍如何使用 HTML、CSS 和 JavaScript 将页面...

    7 年前

相关推荐

    暂无文章