Node.js url 模块对比 Javascript URL
Node.js url module vs Javascript URL
当我在 JavaScript 和 Node.js 上找到 URL
时,我正在搜索 URL
模块。
我有几个问题:
- JavaScript
URL
与 Node.js URL 不同吗?
- Node.js中的
URL
模块和Node.js中的模块有什么区别
JavaScript? 的特征
- 在编写的文档中,
URL
被称为全局对象。所以
您不再需要 url
模块?
Browser-compatible URL class, implemented by following the WHATWG URL
Standard. Examples of parsed URLs may be found in the Standard itself.
The URL class is also available on the global object.
在全局对象平台里面,我还看到了http
、path
、os
等模块
我想使用 os
和 path
模块而不需要(因为它们在全局对象中)但是我的文件执行失败:
> node test.js
console.log(path); // ReferenceError: path is not defined
我也写了下面的代码,但是在输出中打印了未定义的值:
console.log(global.path); // undefined
- 这是什么原因?
但是当我在 REPL 中使用它们时,returns 输出如下:
<ref *1> {
resolve: [Function: resolve],
normalize: [Function: normalize],
isAbsolute: [Function: isAbsolute],
join: [Function: join],
relative: [Function: relative],
toNamespacedPath: [Function: toNamespacedPath],
dirname: [Function: dirname],
basename: [Function: basename],
extname: [Function: extname],
format: [Function: bound _format],
parse: [Function: parse],
sep: '\',
...
...
- REPL和脚本文件的区别是什么原因?
感谢您的关注。期待您的回复。
- Node.js 中的 URL 对象旨在与您在浏览器中获得的对象兼容。
- 任何可见的差异都应在 URL class 的文档中提及。好像没有。
- 这是正确的 - 如果您只需要 URL class 或 URLSearchParams,则不需要
require('url')
。
你提到一些模块在全局对象中:
http, path, os, etc.
但是,文档并未在任何地方说明这一点。相反,这些是您需要自己 require()
的模块。 URL
被记录为全局对象的一部分,这是真的 - 它是一个随处可用的 class,很像 String、Number、Buffer 和其他一些对象。这样做是为了与 Web 平台兼容。
REPL 很特别 - 它包含一个可用性功能,如果它看到对核心模块的引用,就会加载它们。此处有更多详细信息:https://nodejs.org/api/repl.html#accessing-core-nodejs-modules
这意味着一些代码实际上可以在 REPL 中表现不同,当 运行 直接通过 node
.
时
当我在 JavaScript 和 Node.js 上找到 URL
时,我正在搜索 URL
模块。
我有几个问题:
- JavaScript
URL
与 Node.js URL 不同吗? - Node.js中的
URL
模块和Node.js中的模块有什么区别 JavaScript? 的特征
- 在编写的文档中,
URL
被称为全局对象。所以 您不再需要url
模块?
Browser-compatible URL class, implemented by following the WHATWG URL Standard. Examples of parsed URLs may be found in the Standard itself. The URL class is also available on the global object.
在全局对象平台里面,我还看到了http
、path
、os
等模块
我想使用 os
和 path
模块而不需要(因为它们在全局对象中)但是我的文件执行失败:
> node test.js
console.log(path); // ReferenceError: path is not defined
我也写了下面的代码,但是在输出中打印了未定义的值:
console.log(global.path); // undefined
- 这是什么原因?
但是当我在 REPL 中使用它们时,returns 输出如下:
<ref *1> {
resolve: [Function: resolve],
normalize: [Function: normalize],
isAbsolute: [Function: isAbsolute],
join: [Function: join],
relative: [Function: relative],
toNamespacedPath: [Function: toNamespacedPath],
dirname: [Function: dirname],
basename: [Function: basename],
extname: [Function: extname],
format: [Function: bound _format],
parse: [Function: parse],
sep: '\',
...
...
- REPL和脚本文件的区别是什么原因?
感谢您的关注。期待您的回复。
- Node.js 中的 URL 对象旨在与您在浏览器中获得的对象兼容。
- 任何可见的差异都应在 URL class 的文档中提及。好像没有。
- 这是正确的 - 如果您只需要 URL class 或 URLSearchParams,则不需要
require('url')
。
你提到一些模块在全局对象中:
http, path, os, etc.
但是,文档并未在任何地方说明这一点。相反,这些是您需要自己 require()
的模块。 URL
被记录为全局对象的一部分,这是真的 - 它是一个随处可用的 class,很像 String、Number、Buffer 和其他一些对象。这样做是为了与 Web 平台兼容。
REPL 很特别 - 它包含一个可用性功能,如果它看到对核心模块的引用,就会加载它们。此处有更多详细信息:https://nodejs.org/api/repl.html#accessing-core-nodejs-modules
这意味着一些代码实际上可以在 REPL 中表现不同,当 运行 直接通过 node
.