有关NodeJS应用程序的问题

时间:2017-06-11 07:34:55

标签: javascript angularjs node.js

我对NodeJS应用程序有非常基本的问题;

  1. 当有人说NodeJS应用程序时,它是指纯服务器端编写的NodeJS应用吗?我的意思是现在,当项目(比如Angular,Ember等)使用Node来安装依赖项时,那些客户端应用程序(在浏览器中运行)是否也称为NodeJS应用程序?或者这些只是使用应用程序的NPM?

  2. Mocha,Jasmine等单元测试框架可以用于我上面描述的两种类型的应用程序吗?或者它仅适用于服务器端NodeJS应用程序?

3 个答案:

答案 0 :(得分:2)

  

它是指纯服务器端编写的NodeJS应用程序吗?

是。具体来说,它指的是具有nodejs后端/服务器的应用程序。

  那些客户端应用程序(在浏览器中运行)是否也可以称为NodeJS应用程序?

这取决于。某些依赖浏览器API的库(例如导航器,窗口等)将无法工作。这是因为nodejs环境中不存在这些浏览器对象。例如,jQuery将无法在nodejs中完全运行,因为与DOM操作相关的某些函数取决于浏览器api。另一方面。 React可以在浏览器和nodejs中使用,因为它具有在浏览器和nodejs环境中兼容的API。

以前,如果我们想要使用库(例如jQuery),我们必须附加指向源的相应脚本标记。现在,您可以使用npm将库代码下载到node_modules文件夹中,并使用require或ES6 import从那里使用它。但是,您可能必须首先进行一些预处理,例如使用Browserify和Gulp捆绑您的代码。您可能希望查看有关如何执行此操作的教程here

  

像Mocha,Jasmine等单元测试框架可以用于我上面描述的两种类型的应用程序吗?或者它仅适用于服务器端NodeJS应用程序?

Mocha,jasmine,chai不依赖于浏览器或nodejs的特定功能,因此它们都可以在两个平台上运行。至于其他人,您必须检查它们是否依赖于浏览器或nodejs特定功能。如果他们这样做,库可能在一个平台(例如浏览器)中工作,但不能在另一个平台上工作。

答案 1 :(得分:1)

  1. “Node.js”是服务器端的“JavaScript”平台。这意味着在NodeJS应用程序中,我们用JavaScript替换典型的服务器端语言,如PHP,Ruby等。说到前端,我们一直在使用Javascript及其像JQuery这样的库很长一段时间来为我们的应用程序添加行为。但是在最近SPA(单页应用程序)的蓬勃发展之后,我们可以看到很多像Angular这样的框架,Ember构建在JavaScript之上,使SPA变得更容易。
  2. NPM是JavaScript的包管理器,它本身使用Node来执行其操作。使用NPM,我们可以将许多JavaScript包(包括所有客户端JS库)带到我们的项目中。但是,如果您使用NPM为您的ASP.net应用程序安装AngularJs,那并不意味着您的Nodejs应用程序。就像我们需要Ruby gem来安装SASS预处理器。

    1. 这是纯JavaScript(NodeJS)应用程序的美妙之处。我们可以在两端使用测试框架。此外,开发人员可以避免两种语言的不同语法之间的心理切换,甚至我们可以在服务器端和客户端重用一些代码/逻辑。

答案 2 :(得分:0)

npm是javascript的包管理器。使用npm导入和管理应用程序的包不会使其成为Node.js应用程序。

没有这样的“Node.js应用”。应用程序指的是前端/客户端。 您可以在后端/服务器端选择Node.js或其他任何内容,与前端无关。

我希望我澄清一点: - )