node.js 学习入门(05 - 模块化)

简介: node.js 学习入门(05 - 模块化)

什么是模块化?

在nodejs中,应用由模块组成,nodejs中采用commonJS模块规范。
  1. 一个js文件就是一个模块
  2. 每个模块都是一个独立的作用域,在这个而文件中定义的变量、函数、对象都是私有的,对其他文件不可见。

模块化的分类

  1. 核心模块
    由 node 本身提供,不需要单独安装(npm),可直接引入使用
  2. 第三方模块
    由社区或个人提供,需要通过npm安装后使用
  3. 自定义模块
    由我们自己创建,比如:test.js 、 user.js

核心模块

使用步骤:1. 先引入 、2. 再使用

fs:文件操作模块
http:网络操作模块
path:路径操作模块

引入模块的方法

// 引入模块
var fs = require('fs');


第三方模块

第三方模块是由 社区个人 提供的

比如:moment模块,jquery模块…

使用步骤:1. 先通过npm下载、 2. 再引入 、3. 最后使用

  • 下载包
npm install moment

如何引入并使用

// 1. 导入需要的包
// 注意:导入的名称,就是装包时候的名称
const moment = require('moment')
const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)
  • 卸载包指令(这里不需要使用)
npm uninstall 名称

自定义模块

由开发人员创建的模块(JS文件)

基本步骤:1. 创建模块、 2. 引入模块

注意:自定义模块的路径必须以 ./ 获者 …/ 开头

  • 自定义时间格式化案例
// 定义格式化时间的方法
function dateFormat(dataStr) {
    const dt = new Date(dataStr)
    const y = dt.getFullYear()
    const m = padZeor(dt.getMonth() + 1)
    const d = padZeor(dt.getDate()
)
    const hh = padZeor(dt.getHours())
    const mm = padZeor(dt.getMinutes())
    const ss = padZeor(dt.getSeconds())
    return `${y}年${m}月${d}日 ${hh}:${mm}:${ss}`
}
// 定义补零的函数
function padZeor(n) {
    return n > 9 ? n : '0' + n
}
module.exports = {
    dateFormat
}
  • 引入并使用案例
// 导入自定义的格式化时间的模块
const date = require("./dateFormat.js")
// 调用方法,进行时间的格式化
const dt = new Date()
console.log(dt)
const newdt = date.dateFormat(dt)
console.log(newdt)

module.exports与exports

在一个自定义模块中,默认情况下,module.exports = {}

// 向 module.exports 对象上挂载 username 属性
module.exports.username = "张三"
// 让 module.exports 指向一个全新的对象
// 永远以 module.exports 为准
exports = {
    nickname: "小黑",
}

演示 module 对象

// 在每个 .js 自定义模块中都有一个 module 对象,他里面存储了和当前模块有关的信息
// module 可以访问其他模块内的对象
// module.exports 和 exports 指向同一个对象
// 最终结果永远以 module.exports 为准
console.log(module.exports)
console.log(exports)
console.log(module.exports == exports)
// 在外界使用 require 导入一个自定义模块的时候,得到的成员就是那个模块中,通过 module.exports 执行的那个对象
const m = require('./06-模块作用域')
console.log(m)

为了防止混乱,尽量不要在同一个模块中同时使用 exports 和 module.exports

以上就是 node.js 中 模块化的使用方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。

相关文章
|
2天前
|
JSON JavaScript 前端开发
菜鸟之路Day23一一JavaScript 入门
本文介绍了 JavaScript 的基础内容,包括 JS 的引入方式、基础语法、数据类型、运算符、类型转换、函数、对象(如 Array、String、自定义对象、JSON、BOM 和 DOM)、事件监听,以及 Vue 框架的初步使用。重点讲解了内部和外部脚本的引入、变量声明(var、let、const)、常见输出语句、数组与字符串的操作方法、DOM 操作及事件绑定,并通过实例展示了 Vue 的双向数据绑定和常用指令(v-bind、v-model、v-on、v-if、v-for 等)。
18 7
|
3月前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
4月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
76 1
|
4月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
50 2
|
4月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
96 5
|
4月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
743 1
|
4月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
182 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
4月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
199 10
|
5月前
|
缓存 JavaScript 前端开发
Node.js模块化的基本概念和分类及使用方法
Node.js模块化的基本概念和分类及使用方法
85 0
|
5月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
1357 2

热门文章

最新文章