码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Node.js 实战 第2章 Node 编程基础 2.4 用 node_modules 重用模块 & 2.5 注意事项


    Node.js 实战

    文章目录

        • Node.js 实战
        • 第2章 Node 编程基础
          • 2.4 用 node_modules 重用模块
          • 2.5 注意事项
            • 2.5.1 第一个注意事项
            • 2.5.2 第二个注意事项

    第2章 Node 编程基础

    2.4 用 node_modules 重用模块

    要求模块在文件系统中使用相对路径存放,对于组织程序特定的代码很有帮助,但对于想要在程序间共享或跟其他人共享代码却用处不大。

    Node 中有一个独特的模块引入机制,可以不必知道模块在文件系统中的具体位置。这个机制就是使用node_modules目录。

    前面那个模块的例子中引入的是./currency。如果省略./ ,只写currency ,Node会遵照几个规则搜寻这个模块:

    在这里插入图片描述

    用环境变量NODE_PATH可以改变 Node模块的默认路径。

    如果用了它,在 Windows中NODE_PATH应该设置为用分号分隔的目录列表,在其他操作系统中则用冒号分隔。

    2.5 注意事项

    尽管Node模块系统的本质简单直接,但还是有两点需要注意一下:

    2.5.1 第一个注意事项

    如果模块是目录,在模块目录中定义模块的文件必须被命名为index.js,除非你在这个目录下一个叫 package.json 的文件里特别指明。

    要指定一个取代index.js的文件,package.json文件里必须有一个用JavaScript 对象表示法(JSON ) 数据定义的对象,其中有一个名为main的键,

    在这里插入图片描述

    指明模块目录内主文件的路径。

    流程图对这些规则做了汇总。

    在这里插入图片描述

    下面是一个package.json 文件的栗子,它指定currency.js 为主文件

    在这里插入图片描述

    2.5.2 第二个注意事项

    Node能把模块作为对象缓存起来。

    如果程序中的两个文件引入了相同的模块,第一个require会把模块返回的数据存到内存中,这样第二个require就不用再去访问和计算模块的源文件了。

    也就是说,在同一个进程中用require加载一个模块得到的是相同的对象。

    假设你搭建了一个MVC Web应用程序,它有一个主对象 app。你可以设置好那个app 对象,导出它,然后在项目中的任何地方require它。如果你在这个app对象中放了一些配置信息,那你就可以在其他文件中访问这些配置信息的值。

    举个栗子,假定目录结构如下所示:

    project
    	app.js
    	models
    		post.js
    
    • 1
    • 2
    • 3
    • 4

    Node 工作原理:

    在这里插入图片描述

  • 相关阅读:
    PyTorch 2.0发布了,一行代码提速76%
    【牛客-剑指offer-数据结构篇】【图解】JZ18 删除链表的节点 Java实现
    计算机系统弱电网络知识点全面总结(完整版)
    计算机专硕变简单,只考一门数据结构!陕西理工大学计算机考研改考
    基于android的心理自测咨询APP-计算机毕业设计
    vue-element-admin 集成框架解读----快速入门
    基于51单片机校园作息时间控制打铃系统( proteus仿真+程序+设计报告+原理图+讲解视频)
    学生管理系统 前后端分离项目【简约版】
    Unity项目迁移
    11-网络篇-DNS步骤
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/127724386
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号