node.js是一个基于Chrome V8引擎的Js代码运行环境

Node.js运行环境安装


  1. 选择系统对应的LTS稳定版 双击安装包,安装目录不能有中文
  2. 打开系统命令行工具,输入node -v,若显示版本信息则安装成功

Node.js组成

js由ECMAScript DOM BOM组成
Node.js由ECMAScript及Node环境提供的一些附加API组成的,包括文件、网络、路径等一些更强大的API

Node.js基础语法

所有ECMAScript语法在Node.js中都可以使用

Niode.js模块化开发

node.js规定一个js文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到,模块内部可以使用exports对象进行成员导出,使用require导入其他模块

1.我们新建一个a.js

const add = (n1, n2) => n1 + n2;
// exports.add = add;
module.exports.add = add;

2.再创建一个b.js

const b = require("./a.js");
console.log(b.add(1, 2));

3.通过在b.js文件夹下打开命令行工具,输入node ./b.js
结果输出3

exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准

系统模块

Node运行环境提供的API为系统模块

文件模块fs

const fs=require(‘fs’);

1.读取文件

fs.readFile(‘文件路径/文件名称’[,‘文件编码’],callback);
[]表示可选参数

实例:

const fs = require('fs');
fs.readFile("./a.js", 'utf-8', (err, doc) => {
    //如果文件读取发生错误,参数err的值为错误对象,否则err的值为null
    //doc参数为文件内容
    if (err == null) {
        console.log(doc);
    }else{
        console.log(err);
        return;
    }
});

2.写入文件

fs.writeFile(‘文件路径/文件名称’,‘数据’,callback);

实例:

const fs = require('fs');
fs.writeFile("./a.txt", "abcdefg", err => {
    if (err != null) {
        console.log(err);
        return;

    } else {
        console.log('文件写入成功');

    }
});
路径模块path

1.路径拼接

不同操作系统的路径分隔符不统一
windows上是\ /
linux是/

path.join(‘路径’,‘路径’,……)

实例:

const path = require('path');
let finialPath = path.join('c:', 'public', 'a', 'a.js');
console.log(finialPath);

结果:c:\public\a\a.js

相对路径和绝对路径问题
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录,在读取文件或者设置文件路径时都会选择绝对路径
使用__dir__获取当前文件所在的绝对路径

第三方模块

1.以js文件形式存在,提供实现项目具体功能的API接口
2.以命令行工具形式存在,辅助项目开发

全局安装与本地安装

命令行工具:全局安装
库文件:本地安装

npm(node package manager):node第三方模块管理工具

下载 :npm install 模块名称

下载的模块被放到当前命令行工作目录的node_modules文件夹下

删除:npm uninstall 模块名称

nodemon(命令行工具)

监控到保存文件后重新执行该文件

使用步骤

  1. npm install nodemon -g
  2. 在命令行工具中使用nodemon命令代替node命令
nrm(下载地址切换工具)

使用步骤:

  1. 下载nrm:npm install nrm -g
  2. 查询可用的下载地址列表:nrm ls
  3. 切换下载地址:nrm use 下载地址名称
Gulp(前端构建工具)

将机械化操作编写成任务,想要执行机械化操作时执行一个命令行命令任务就能自动执行

作用:

项目上线,HTML\CSS\JS文件压缩合并
语法转换(ES6、less)
公共文件抽离
修改文件浏览器自动刷新

使用:

  1. npm install gulp 在项目下建立gulpfile.js文件
  2. 重构项目的文件夹结构src目录放置源代码文件
  3. dist目录放置构建后的文件
  4. 在gulpfile.js文件中编写任务
  5. 在命令行工具中执行gulp任务

package.json(项目描述文件)

记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等,使用npm init -y命令生成。

使用npm install下载项目所需模块

开发依赖使用 npm install 包名–save-dev下载,将其添加到package.json文件的devDependencies字段中

创建web服务器

//引用系统模块
const http = require('http');
//创建web服务器
const app = http.createServer();
//当客户端发送请求的时候
app.on('request', (req, res) => {
    //响应
    res.end('<h1>Hello World!</h1>');
});
//监听4000端口
app.listen(4000);
console.log('服务器启动成功,请访问localhost:4000');