我有关于 NodeJS 应用程序的非常基本的问题;
当有人说 NodeJS 应用程序时,它是指纯服务器端编写的 NodeJS 应用程序吗?我的意思是,现在,当项目(比如 Angular、Ember 等)使用 Node 安装依赖项时,那些客户端应用程序(在浏览器中运行)是否也可以称为 NodeJS 应用程序?或者这些只是 NPM 使用应用程序?
Mocha、Jasmine 等单元测试框架可用于我上面描述的两种类型的应用程序吗?或者它仅适用于服务器端 NodeJS 应用程序?
最佳答案
does it refer to a pure server-side written NodeJS app?
是的。具体来说,它指的是具有 Nodejs 后端/服务器的应用程序。
can those client-side apps (which run in browser) be also called NodeJS app?
这要看情况。某些依赖于浏览器 API 的库(例如导航器、窗口等)将无法工作。这是因为这些浏览器对象不会存在于nodejs环境中。例如,jQuery 在 Node.js 中无法完全工作,因为与 DOM 操作相关的某些功能取决于浏览器 API。另一方面。 React可以在浏览器和nodejs中使用,因为它具有在浏览器和nodejs环境中兼容的API。
以前,如果我们想使用库(例如 jQuery),我们必须附加一个指向源的相应脚本标签。现在,您可以使用 npm 将库代码下载到 node_modules 文件夹中,并使用 require
或 ES6 import
从那里使用它。但是,您可能必须首先进行一些预处理,例如使用 Browserify 和 Gulp 捆绑代码。您可能想查看有关如何执行此操作的教程 here .
The unit-testing frameworks like Mocha, Jasmine, etc be used for both the types of apps I described above ? Or is it meant only for server-side NodeJS app ?
Mocha、jasmine、chai 不依赖于浏览器或 Nodejs 特定功能,因此它们都应该在两个平台上工作。至于其他的,你必须检查它们是否依赖于浏览器或nodejs的特定功能。如果这样做,该库可能可以在一个平台(例如浏览器)上运行,但不能在另一个平台上运行。
关于javascript - NodeJS应用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481441/