1.什么是Nodejs?
Nodejs是一个基于Chrome V8 引擎的JavaScript运行时(运行环境)。
2.Nodejs的简单应用。
1.使用module.exports对象导出模块成员
(每个模块内部都有一个 module对象,代表当前模块,我们可以使用它的 exports 属性导出模块成员。该属性的初始值为一个空对象,我们只需要将被导出的成员添加为该对象的属性即可。)
// 模块私有的成员
function add( x, y ) {
return x / y;
}
// 如果我们想导出某个成员的话,只需要将它添加为 module.exports 对象的属性即可。
// 模块导出的成员add
module.exports.add = function (x, y) {
return x + y;
};
2.使用module.exports的别名:exports对象
(为了方便导出模块成员,Node.js为每个模块提供了一个exports对象,exports对象的初始值与module.exports对象的初始值相同,也就是说exports对象与module.exports对象指向同一个对象。)我们可以用如下代码解释:
var exports = module.exports = {};
exports.add = function (x, y) {
return x + y;
};
3.一次导出多个成员
(上面的两种导出方式每次只能导出一个成员,如果我们想一次导出多个成员,则可以使用一个包含要导出成员的新对象替换module.exports属性来的值(空对象)。给module.exports对象里面添加成员)
function add (x, y) {
return x + y;
}
function subtract (x, y) {
return x - y;
}
//给module.exports对象里面添加成员,就可以一次导出多个成员
module.exports = {
add,
subtract
};
注意!
(module.exports属性的值改变之后,exports对象的值并不会随着改变,此时两者不再指向同一个对象。Node.js规定只有module.exports对象中的成员会被导出,因此exports对象失去了导出模块成员的功能。)
//// exports对象失去了导出模块成员的功能,此处导出模块成员失败。
exports.multiply = multiply;
解决方法:我们可以让exports对象重新指向module.exports对象,从而让exports对象再次具有导出模块成员的功能。
exports = module.exports
// 由于exports对象与module.exports再次指向同一个对象,因此下面的导出语句成功
exports.multiply = multiply;
3.使用NodeJS模块
(除了使用自己写的本地模块以外,NodeJS可以使用另外两种类型的模块,分别是NodeJS官方提供的核心模块和第三方提供的模块。)
1.NodeJS官方提供的核心模块
(NodeJS平台自带的一套基本的功能模块,也被称为NodeJS平台的API。)
// 使用模块全局的 require() 方法引入 fs 模块
const fs = require('fs')
// 使用 fs 模块导出的 readFile() 方法读取 data.json 文件中的内容
fs.readFile('./data.json', {encoding: 'utf8', flag: 'r'}, (err, data) => {
})
2.第三方开发者提供的模块
1.搜索相应的模块
(第三方模块是由NodeJS社区或第三方个人开发的功能模块,这些功能模块以软件包的形式存在。被发布在npmjs注册表中。npmjs是一个注册中心,所有软件包的信息都会被记录到该注册中的数据库中,我们可以来到npmjs官方站点,根据关键字搜索自己需要的软件包。)
2.使用NPM的命令安装第三方模块,此步骤需要访问网络
// lodash为包名,
npm install lodash --save-prod
--save-prod可以用-P替代
- install也可以简写成i
- --save-prod将 lodash 模块作为当前软件包的产品依赖,并将依赖信息记录到package.json文件中的dependencies字段中
- 此外,初次执行install命令时,还会生成一个package-lock.json文件,该文件记录了当前软件包所依赖的其他软件包的详细信息,用于将软件包锁定到特定的版本
- 安装完成之后,当前项目的目录下会生成一个node_modules/目录,目录中保存就是我们下载后的软件包
3.创建自己的模块
1.在合适的目录下,打开命令窗口,创建软件包的目录,并切换到该目录下:
//mkdir创建文件夹 cd进入文件夹
mkdir lodashdemo && cd loadshdemo
2.使用npm提供的命令,==初始化(创建json软件包信息)==软件包,你需要填写几个信息,填写完毕之后会生成一个package.json文件,该文件记录了软件包的所有信息。
//init初始化 -y表示初始化的所有内容都为默认
npm init -y
3.如果你只是想把创建的包作为一个本地项目,并不想将它发布到npmjs注册中心(不想让别人使用你的软件包),你需要移除package.json文件中的main字段,然后添加private字段,并指定其值为true,表示这是私有的软件包。修改之后的结果如下:
{
"name": "lodashdemo",
"version": "1.0.0",
"description": "讲解 NPM 包管理器的使用方法",
//这里将main字段删除,添加private字段,指定为true
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"demo",
"lodash",
"陈老师"
],
"author": "陈老师",
"license": "MIT"
}
4.创建自己的项目文件,例如,app.js文件,导入第三方模块,即可使用模块提供的功能
// 导入 lodash 模块
const _ = require('lodash');
// 使用 lodash 模块提供的方法
const add = _.add(12, 56)
console.log(add)
const subtract = _.subtract(8, 4)
console.log(subtract)
const multiply = _.multiply(8, 4)
console.log(multiply)
4.NPM及常用命令
1.什么是NPM
NPM是世界上最大的软件注册机构(登记处)。来自世界各地的开源开发者可以使用NPM来共享自己的写软件包,也可以使用他人写的软件包。
2.获取离线帮助信息
//<command>为想要查询的命令
npm help <command>
3.NPM常用命令
1.初始化软件包
// -y / --yes 表示使用默认的配置
npm init -y
该命令会询问你几个问题,然后把我们出入的结果记录到package.json文件中。但是你可以使用 -y/–yes 选项跳过提问的过程。
2.安装第三方软件包
// @跟别名 / 包名 @版本号
npm install [@scope/]<package name>[@version]
- scope,一般指的是组织或公司的名字,通常情况下我们安装的软件包是没有scope
- package name,要安装的包名
- version,你要安装哪个版本,省略则默认安装最新版本
//安装第三方软件包
npm install lodash --save-prod
1.--save-prod,-P,安装到当前目录下的node_modules/目录下,作为当前项目的产品阶段的依赖,会被记录到package.json文件中的dependencies字段中。
2.--save-dev,-D,安装到当前目录下的node_modules/目录下,作为当前项目的开发阶段的依赖,会被记录到package.json文件中的devDependencies字段中。
3.--global,-g,全局安装,安装到了C:\Users\Administrator\AppData\Roaming\npm\node_modules,全局安装的软件包可以在任何项目中使用,一般安装的是一些需要全局使用的命令行软件包。
4.--no-save,安装到当前目录下的node_modules/目录下,不会被记录到package.json文件中。
2.卸载软件包
//和安装一样的对应
npm uninstall [@scope/]<package name>[@version]
该命令不仅会删除软件包及其依赖的其他软件包,还会删除软件包在package.json文件中的记录。
3.查看已安装的软件包
npm list
该命令默认会树形结构输出当前项目依赖的所有软件包。但是我们可以使用一些选项该改变输出的结果。
- --global,列出所有全局安装的软件包
- –depth number,number指的是层数,从0开始,例如,npm list --depth 0,表示显示第一层的软件包。
5.解决npm下载慢的问题
1:使用淘宝定制的cnpm命令行工具替代默认安装npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
2:将npm默认的下载地址修改为淘宝镜像
npm cofig set registry https://registry.npm.taobao.org/
注意,如果将来你需要发布自己的软件包时,需要将registry字段的值修改回来
npm cofig set registry https://registry.npmjs.org/
来源:CSDN
作者:口咸耳关
链接:https://blog.csdn.net/qq_36401256/article/details/103481713