在Javascript中分享服务器和客户端之间的代码是什么意思?

我会诚实地说,在挖掘NodeJS的时候,我不太理解一个概念。 这个概念是关于NodeJS如何让我们在服务器和客户端之间共享代码。 这是什么意思? 这是否意味着我可以编写一个函数,我可能调用客户端,并将其作为远程方法调用,或者是否代码复制到客户端并执行?

有人可以给我一些直观的例子,我可以把我的头围绕吗?

它只是意味着在服务器端使用的代码也可以作为<script>包含在HTML中,如果适用的话。 真正的挑战是find适用的机会。

一个例子是inputvalidation引擎。 我们都知道,只有在服务器上执行的validation是可靠的,但客户端validation仍然是用户体验的理想select。 如果validation引擎以足够通用的方式devise,则可以在客户端和服务器端都使用相同的代码,从而避免了大量的重复工作。

其他示例包括HTML模板库,数据模型以及各种实用程序库(如underscore.js) 。

这意味着代码被复制到客户端并在浏览器中本地执行。

举一个例子,假设你的服务器上有一个代表Person的js文件,path为/app/model/person.js 。 该文件的内容是:

 function Person(id, firstName, lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName; } 

在Node.JS中,你可以在一些文件中使用这个Person对象:

 // someFile.js include("/app/model/person"); function onLoad() { var john = new Person(1, "John", "Malkovich"); }; 

通过从相同的来源加载相同的代码可以在客户端使用:

 <script src="/app/model/person.js"></script> <script> var john = new Person(1, "John", "Malkovich"); </script> 

那是对的。 如果你的服务器和客户端使用相同的编程语言,在这种情况下JavaScript,你可以写一个函数/类/等的实现。 并在客户端和服务器上使用它。 这与你有Python / Java /等的大多数其他场景是不同的。 在服务器和客户端上的JavaScript。