Node.js学习笔记


一、Node.js是什么?

node.js是 javascript 的服务器端运行环境,可以让程序员使用 javascript 来实现服务器端的编程;
nodejs 由三部分组成:ECMAScript 核心 + 全局成员 + 模块成员,并且nodejs是基于commonjs规范。

二、Node.js学习

1.模块化

1.1全局作用域

global.name = "nick"  //这样就可以在全局访问name 

1.2模块作用域

在nodejs中每个 js 文件,都是一个独立模块,每个模块都有自己独立的作用域。因此模块中的成员,默认无法被其它模块访问。

(1)模块成员分类

1.核心模块 如 fs,path
2.第三方模块 npm上下载的包
3.用户自定义模块

那么不同模块之间如何相互访问呢,就需要引入与暴露模块。

(2)exports 与 module.exports 暴露模块
module.exports.name = "nick"
module.exports = {}
exports.name = "nick"
exports 与 module.exports的区别?

module表示当前模块,exports是module的属性,既可以使用exports,也可以使用module.exports暴露模块。
不能写exports ={},其他的方面它们一样。
因为直接赋值,就会导致exports不是指向module.exports。

//例如  
var a = { name:"zs" }
var b = a
b.name = "ls"   //给b.name重新赋值会影响a,
b = { age:18 }  //但如果给b再重新赋值,则不指向a
(3)require 引用模块
//引入核心模块
require("fs")
//引入文件模块    
require("./demo.js")
(4)模块化的原理
//利用闭包传参
(function () {
    console.info(module, exports, require, __filename, __dirname);
})(exports, require, module, __filename, __dirname)
console.info(arguments);

2.包管理工具

2.1npm

npm下载的包放在node_modules中

npm init    //初始化
npm install 包名 -g    //全局安装
npm uninstall 包名 -g  //全局卸载
npm version   //版本信息
npm -v        //版本号
npm search    //搜包名
npm set registry https://registry.npm.taobao.org/  //设置淘宝镜像源     npm默认镜像源为https://registry.npmjs.org/
npm get registry 		 //获取镜像源:https://registry.npm.taobao.org/ 
npm config set strict-ssl false   //取消npm的https认证

2.2package.json

包都要以一个单独的目录而存在,且在顶级目录下,需符合 JSON 格式。

包描述文件:
name:包的名称,必须是唯一
repository :包源码存放仓库
description:包的简要说明
version:包的版本号
main:入口文件
dependencies:生产环境依赖项
devDependencies:开发环境依赖项
scripts:脚本(包含包的启动,打包命令等)

npm装包时-S和-D的区别?

name为包名
npm install name --save-dev 简写(npm install name -D) 自动把模块和版本号添加到devdependencies,dev是在开发环境中要用到的

npm install name --save 简写(npm install name -S) 自动把模块和版本号添加到dependencies,dep是在生产环境中要用到的

npm清理缓存的方法
npm cache clean --force
npm link的使用

作用
1、方便调试源码
2、在本地开发npm模块的时候,我们可以使用npm link命令,将npm 模块链接到对应的运行项目中去,方便地对模块进行调试。

命令
1、npm link:创建软链接
2、npm unlink:去掉软链接
3、npm link 包名:使用上一步创建的软链接
4、npm unlink 包名:删除引用的软链接
注意: 此处的包名指的是要使用的对方模块中package.json的name
软链接可以理解为是创建了一个快捷方式

锁定项目 Node 版本

执行完npm link后,当前模块就会链接到全局,路径是{prefix}/lib/node_modules/
npm config get prefix 命令获取到prefix的值

通过在 package.json 中指定 engines 字段,可限定项目使用的 node 版本。例如下面配置仅允许用户使用 14以上的node版本。更多的配置可以参考 package.json配置

"engines": {
    "node": ">=14.19.0",
    "npm": ">= 3.0.0"
}

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值