首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端模块化-总结_前端模块化规范

commonjs 规范应用于 nodejs 应用中,在 nodejs 应用中每个文件就是一个模块,拥有自己的作用域,文件中的变量、函数都是私有的,与其他文件相隔离。...module.exports 和 exports 我们还可以导出 exports 直接使用,但需要注意一点,exports 是已经定义的常量,在导出的时候不能在给它定义,如下 let exports =...; // 正确的 使用 exports 我们可以这么导出对象,但需要注意一点,在导出对象前不能修改 exports 的指向,若修改 exports 就与 module.exports 不是一个东西了,当然你可以在导出对象后随意修改..."MODULE_NOT_FOUND", f } var l = n[o] = { exports...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

63220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    nodejs的调试debug

    一般来说我们需要借助于强大IDE的调试功能来完成这项工作。nodejs也不例外。 今天我们来详细介绍一下如何调试nodejs程序。 开启nodejs的调试 还记得之前我们讲到的koa程序吗?...先看下一个简单的koa服务app.js: const Koa = require('koa'); const app = module.exports = new Koa(); app.use(async...一般来说,我们不建议进行远程调试。 默认情况下 –inspect 绑定的是127.0.0.1,这样就只允许本地程序访问。并且任何本地运行的程序都有权限进行该程序的调试。...我们直接使用: node inspect app.js f1c64736-47a1-42c9-9e9e-f2665073d3eb...这个CLI调试程序为我们提供了一些非常有用的命令: Stepping cont, c: 继续执行 next, n: Step到下一步 step, s: Step in out, o: Step out

    71710

    nodejs的调试debug

    一般来说我们需要借助于强大IDE的调试功能来完成这项工作。nodejs也不例外。 今天我们来详细介绍一下如何调试nodejs程序。 开启nodejs的调试 还记得之前我们讲到的koa程序吗?...先看下一个简单的koa服务app.js: const Koa = require('koa'); const app = module.exports = new Koa(); app.use(async...一般来说,我们不建议进行远程调试。 默认情况下 –inspect 绑定的是127.0.0.1,这样就只允许本地程序访问。并且任何本地运行的程序都有权限进行该程序的调试。...我们直接使用: node inspect app.js f1c64736-47a1-42c9-9e9e-f2665073d3eb...这个CLI调试程序为我们提供了一些非常有用的命令: Stepping cont, c: 继续执行 next, n: Step到下一步 step, s: Step in out, o: Step out

    1.6K21

    这里有一份Node.js入门指南和实践,请注意查收

    也可以使用 ES6 的箭头函数作为监听器,但 this 关键词不会指向 EventEmitter 实例。...()方法返回进程当前的工作目录 console.log(process.cwd()) // /Users/null/nodejs/process 终止当前进程:process.exit([code]).../square.js')) // /Users/null/meet-nodejs/module/square.js require.resolve 的工作过程: require(X) from module...另外,在不区分大小写的文件系统或系统中,不同的文件名可能解析到相同的文件,但缓存仍会将它们视为不同的模块,会多次加载文件。如:require('./index')和 require('....有时它的工作方式与我们所想的并不一致,有时我们希望模块是一些类的实例。因此,要将导出对象赋值给 module.exports,但是导出所需的对象将分配绑定本地导出变量,这可能不是我们想要的结果。

    3.6K30

    唯一识别码之UUID入门与实战

    UUID,最大的问题就是这种重复率的问题,这一类型的UUID的重复率是可以计算出来的,所以大型长期的网站还是不建议采用这个版本的,当用久了后重复的概率越来越大,遇到的问题将越来越多。...r : (r & 0x3 | 0x8); return v.toString(16); });} 使用示例 Nodejs版本 const uuidv4 = require('uuid/v4')...require('crypto').randomBytes(16); // 将byte生成uuid 的 string的工具函数function bytesToUuid(buf) {} // 主干代码module.exports...否则就为0 // 将UUID的M和N位进行处理,处理后M位为4,N为a,b,8,9内的任意值 rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[...8] & 0x3f) | 0x80; return bytesToUuid(rnds);} 五、基于SHA1散列算法的UUID 这个版本与第三版本的UUID类似,但使用的散列算法不同 ,它利用SHA1

    4K20

    彻底搞懂 Node.js 中的 Require 机制(源码分析到手写实践)

    C++ 扩展模块:用户自己编写的 C++ 扩展模块或者第三方 C++ 扩展模块 模块加载 介绍了上面的模块分类,正常应该到介绍不同模块的加载环节,这里不这样,只列出目录。...加载 Node.js 原生模块 本文不包括直接调用内建纯C/C++模块,也不推荐这样使用,因为我们正常调用的原生模块都是通过 js封装一层,它们自己再去调用,你想直接调用的 Node.js提供的存C/C...比如我们require(net),走完前面的缓存判断就会到达这个loadNativeModule函数(源码位置:https://github.com/nodejs/node/blob/802c98d65de40f245781f591a0b3b38336d1af94.../node/blob/802c98d65de40f245781f591a0b3b38336d1af94/lib/internal/bootstrap/loaders.js#L161) 然后到了 mod...返回模块的 module.exports return module.exports; 在模块中的代码可以修改 module.exports 的值,不管是从缓存获取,加载原生模块还是普通文件模块,module.exports

    3K21

    在 Node.js 中使用 Async Hooks 处理 HTTP 请求上下文实现链路追踪

    在 Node.js 中我们的业务通常都工作在主线程(使用 work_threads 除外),是没有 ThreadLocal 类的。...在接下来我会讲解实现 AsyncLocalStorage 的四种方式,从最开始的手动实现到官方 v14.x 支持的 AsyncLocalStorage 类,你也可以从中学习到其实现原理。...如下代码,是我精简后的一个例子,现在有一个需求,在不更改业务代码的情况下每次日志打印都输出当前 HTTP 请求处理 Headers 中携带的 traceId 字段,如果是你会怎么做呢?...-5038-4ac9-a9c8-2aa5abb0f96a Get user list at service layer. e82d1a1f-5038-4ac9-a9c8-2aa5abb0f96a Get...Reference [1] nodejs.org/api/async_hooks.html: https://nodejs.org/api/async_hooks.html [2] Node.js 14

    1.9K30

    读懂CommonJS的模块加载

    首先肯定是解析路径,系统给我们解析出一个绝对路径,我们写的相对对路径是给我们看的,绝对路径是给系统看的,毕竟绝对路径辣么长,看着很费力,尤其是当我们的的项目在N个文件夹之下的时候。...根据这个断点,我们可以整理出: 黄色圈出来的时require,也就是我们调用的方法 红色圈出来的时Module的工作内容 Module....import x from '....ES6模块导入的几个问题: 相同的模块只能引入一次,比如x已经导入了,就不能再从utils中导入x 不同的模块引入相同的模块,这个模块只会在首次import中执行。...console.log(count); 复制代码 与之对比的是commonJS的模块引用,他的特性是: 上一节已经解释了,模块导出的固定值就是固定值,不会因为后期的修改而改变,除非不导出静态值

    1.3K30
    领券