专栏首页博客笔记Nodejs入门学习1.md

Nodejs入门学习1.md

[TOC] Come on 开始新的征程!

(1) 模块与包

模块:在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。 在Node环境中,一个.js文件就称之为一个模块(module)。

模块/包与CommonJS示例图:

WeiyiGeek.模块包CommonJS

Q:使用模块有什么好处?

  • 提高了代码的可维护性
  • 代码重用
  • 避免函数名和变量名冲突

Tips:相同名字的函数和变量完全可以分别存在不同的模块中,因此我们自己在编写模块时,不必考虑名字会与其他模块冲突。

1.1 模块分类

Nodejs模块基于CommonJ规范分类:

  • 内置模块:系统自带的模块我只需要调用即可;
  • 第三方模块:大佬开发的一些模块我们需要通过npm进行下载安装;https://npmjs.com
  • 自定义模块:我们自定义的模块,即暴露接口然后引用

案例(1):

//采用ES6规范
//######(1)内置模块##########
const os = require('os')  //nodejs API
console.log(os.hostname)  //DESKTOP-OVF3TEN


//#########(2)第三方模块 利用npm或者cnpm下载安装模块包  ############
> npm init   #在项目中创建配置文件 
> npm install request --save  #会建立 node_modules 文件夹存放模块包,配置里面也将写入dependencies;
//第三方模块使用
const request = require('request')
request({
    url:'https://api.douban.com/v2/movie/top250',
    json: true
},(error,Response,body)=>{
    console.log(JSON.stringify(body, null, 2))  //空白替换 / 2 表示缩进
})


//##############(3) 自定义模块 ###############
//建立一个src文件夹存储自定义模块 ./src/greeting.js
//第一步建立模块
'use strict';
const hello = () =>{
    console.log('Hello ~')
}
//第二步暴露模块 模块名称 = 处理方法
////module.exports = hello; 下面可直接调用hello() = > Demo()
module.exports.hello = hello

//#主调用文件moduel.js
//在使用require()引入模块的时候,请注意模块的相对路径,因为main.js和hello.js位于同一个目录,所以我们用了当前目录.:
const Demo = require('./src/greeting.js')
Demo.hello()  //Hello ~

案例2:自定义模块

//########## src\hello.js ###########
//hello.js文件就是一个模块,模块的名字就是文件名
'use strict';
var s = 'Hello';
function greet(name) {
    console.log(s + ', ' + name + '!');
}
module.exports = greet;  //直接暴露方法名 (注意这点)

//########## module_1.js ###########
'use strict';
// 引入hello模块:
var greet = require('./src/hello');
var s = 'WeiyiGeek';
//成功地引用了hello.js模块中定义的greet()函数
greet(s); // Hello, WeiyiGeek! (注意)

注意:

  • 遇到这个错误,你要检查:模块名是否写对了,模块文件是否存在,相对路径是否写对了;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python3入门学习四.md

    描述:模块就是更高级的封装,而模块就是程序;实际就是将一个个python文件编写的函数导入到其他的py文件中进行调用;

    WeiyiGeek
  • 文件查找下载命令

    描述:在后台数据库中按文件名搜索,速度更快,通过/var/lib/mlocate内数据库记载找出用户输入的关键字文件名,它的更新速率默认是一天一次,Linux版...

    WeiyiGeek
  • kubernetes脑图下载与学习笔记总结

    WeiyiGeek
  • 【彩色光模块】CWDM光模块和DWDM光模块知识百科

    彩色光模块(也被称为波分光模块)是光复用传输链路中的的光电转换器,其采用波分复用技术,将不同波长的光信号复合在一条光纤上进行传输,具备成本低等优点。

    易天光通信
  • 解决 maven 引入其他模块无法扫描到spring bean的问题

    Meet相识
  • Python标准库和类编写风格

    正如你看到的,在组织大型项目代码方面,Python提供了很多选项,熟悉所有这些选项很重要,这样你才能确定哪种项目是最佳的,并能理解别人开发的项目。开始应让代码结...

    于小勇
  • 同步模块模式

    同步模块模式SMD是请求发出后,无论模块是否存在,立即执行后续的逻辑,实现模块开发中对模块的立即引用,模块化是将复杂的系统分解为高内聚、低耦合模块,同步模块模式...

    WindrunnerMax
  • Android工程模块化平台的设计

    用户1907613
  • ABP框架 - 模块系统

    我思故我在
  • 干货 | Android工程模块化平台的设计

    携程技术

扫码关注云+社区

领取腾讯云代金券