Node开发(笔记)

一、Node开发概述

1、Node是什么

Node是一个基于Chrome V8引擎的JavaScript代码运行环境

运行环境

  • 浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境
  • Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境

二、Node.js模块化开发

1、Node.js中模块化开发规范

  • Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
  • 模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块
    Node开发(笔记)_第1张图片

2、模块成员导入导出

a.js

// 导出

//在模块内部定义变量
let version = 1.0;

//在模块内部定义方法
const sayHi = name => `您好, ${name}`;

// 向模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;

b.js

// 导入

// 在b.js中导入模块a
let a = require('./b.js');

// 输出b模块中的version变量
console.log(a.version);

//调用b模块中的sayHi方法 并输出其返回值
console.log(a.sayHi('hello'));

3、模块成员导出的另一种方式

module.exports.version = version;
module.exports.sayHi = sayHi;

exportsmodule.exports的别名 (地址引用关系)导出对象最终以module.exports为准
当exports对象和module.exports对象指向的不是同一个对象时, 以module.exports为准

const greeting = new => hello $(name);
const x = 100;
exports.x = x;
module.exports = {
	name: 'zhangsan'
}

三、系统模块

1、什么是系统模块

Node运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的API为系统模块
Node开发(笔记)_第2张图片

2、系统模块fs文件操作

f:file文件,s:system系统,文件操作系统

const fs = require('fs');

读取文件内容

fs.reaFile('文件路径/文件名称' [,'文件编码'], callback);

示例

//1、通过模块的名字fs对模块进行引用
const fs = require('fs');

// 通过模块内部的readFile读取文件内容
fs.readFile('../css/base.css', 'utf-8', (err, doc) =>{
    //如果文件读取发生错误 参数err的值为错误对象 否则err的为null
    //doc参数为文件内容
    if(err == null){
        //在控制台中输出文件内容
        console.log(doc);
    }
})

写入文件内容

fs.writeFile('文件路径/文件名称', '数据', callback);
const { fstat } = require("fs");

const content = '

正在使用fs.writeFile写入文件内容

'
; fs.writeFile('../index.html', content, err =>{ if(err != null){ console.log(err); return; } console.log('文件写入成功'); });

3、系统模块path路径操作

为什么要进行路径拼接

  • 不同操作系统的路径分隔符不统一
  • /public/uploads/avatar
  • Window 上是 \ /
  • Linux 上是 /

4、路径拼接语法

path.join('路径', '路径', ...)
// 导入 path 模块
const path = require('path');

//路径拼接
let finialPath = path.join('hello','a','b','c.css');

//输出结果 hello\a\b\c.css
console.log(finialPath);

5、相对路径vs绝对路径

  • 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
  • 在读取文件或者设置文件路径时都会选择绝对路径
  • 使用 __dirname 获取当前文件所在的绝对路径
const fs = require('fs');
const path = require('path');

fs.readFile(path, join(__dirname, '01.helloworld.js'), 'utf8', (err, doc) => {
		console.log(err);
		console.log(doc);
})

四、第三方模块

1、什么是第三方模块

别人写好的,具有特地功能的,我们能直接使用搞得模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被防止在一个文件夹中,所以又名包

第三方模块又两种存在形式:

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

2、获取第三方模块

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

  • 下载:npm install 模块名称
  • 卸载:npm uninstall package 模块名称

全局安装与本地安装

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

2、第三方模块 nrm

nrm ( npm registry manager ):npm下载地址切换工具
npm默认的下载地址在国外,国内下载速度慢

使用步骤

  1. 使用npm install nrm -g 下载它
  2. 查询可用下载地址列表 nrm ls
  3. 切换 npm 下载地址 nrm use 下载地址名称

你可能感兴趣的:(Node,nodejs)