1.Node.js概述:
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
2.Node.js安装方法
(个人觉得众多方法中比较简单的方法):
sudo apt-get remove nodejs --purge
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apte-get update
sudo apt-get install -y nodejs
node -v
npm -v
//得到版本号则安装成功
3.模块化
在 Node环境中,一个.js文件就称之为一个模块(module)。
模块化的优点:
- 模块化提高了代码的可维护性且编写代码不必从零开始。
- 各个模块之间可以互相调用,当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Node内置的模块和来自第三方的模块。
- 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中。
实例:两个js文件
main.js
let greet = require('./node.js'); //引用node.js中暴露的变量
let s = "Mike";
greet(s);
node.js
let s= "Hello";
function greet(name) {
console.log(s+","+name+"!");
}
module.exports = greet; /*对外暴露变量*/
分析:
* 变量greet就是在node.js中我们用module.exports = greet;输出的greet函数
* 一个模块想要对外暴露变量
(输出的变量可以是任意对象、函数、数组等等),可以用module.exports = variable;
* eg:
node.js中对外暴露
greet函数 :module.exports = greet;
* 一个模块要引用其他模块暴露的变量
,用 var ref = require('module_name');
就拿到了引用模块的变量。
* eg:
main.js中想引用暴露
的greet函数 :let greet = require('./node.js')
;
* 若在不同的js文件中使用相同名字的全局变量,可能在运行中产生干扰,可以将变量写入函数内部(function(....))(),则变成了局部变量;
4.NPM
1.NPM的介绍
NPM(node package manager),通常称为node包管理器,主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。NPM是基于couchdb一个数据库,详细记录了每个包的信息(作者、版本、依赖、授权信息等)。
2. NPM的作用
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
3.NPM 命令的一般格式都是 npm <command> [ args ]
4.NPM创建一个项目:
- 新建一个目录为项目:
mkdir node
- 在空项目
node
下运行npm init
初始化;根据提示填入项目相关信息(随意填) -
初始化后,项目中会多一个package.json文件,及一些定义的项目依赖及脚本信息
image.png
4 然后控制台运行 node index.js
会出错,因为没有express/lodash模块
5.接下来就要安装模板框架express/lodash
执行命令npm install --save lodash
安装 lodash 模块
执行命令npm install express
安装express模板
express
若安装成功,项目中则出现 node_modules
文件夹;且package.json中多出dependencies
块中的lodash
而多出的dependencies就是项目所需的依赖包(只安装了一个),可以安装其他的
6.npm ls
就可以查看当前项目下所有的依赖包
7.安装好之后,express 包就放在了工程目录下的 node_modules 目录中,
8.因此在代码中只需要通过 require('express') 的方式就好,var express = require("express");
无需指定第三方包路径。
学习Node.js的第一天,emmm还是只是简单的了解了一下,马上开学了,慌慌的,假期就这样的荒废了。
image.png
image.png
image.png
网友评论