我对NodeJS应用程序有非常基本的问题;
当有人说NodeJS应用程序时,它是指纯服务器端编写的NodeJS应用吗?我的意思是现在,当项目(比如Angular,Ember等)使用Node来安装依赖项时,那些客户端应用程序(在浏览器中运行)是否也称为NodeJS应用程序?或者这些只是使用应用程序的NPM?
Mocha,Jasmine等单元测试框架可以用于我上面描述的两种类型的应用程序吗?或者它仅适用于服务器端NodeJS应用程序?
答案 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)
NPM是JavaScript的包管理器,它本身使用Node来执行其操作。使用NPM,我们可以将许多JavaScript包(包括所有客户端JS库)带到我们的项目中。但是,如果您使用NPM为您的ASP.net应用程序安装AngularJs,那并不意味着您的Nodejs应用程序。就像我们需要Ruby gem来安装SASS预处理器。
答案 2 :(得分:0)
npm
是javascript的包管理器。使用npm导入和管理应用程序的包不会使其成为Node.js
应用程序。
没有这样的“Node.js应用”。应用程序指的是前端/客户端。
您可以在后端/服务器端选择Node.js
或其他任何内容,与前端无关。
我希望我澄清一点: - )