首页 > Web开发 > 详细

Nodejs学习笔记

时间:2019-12-24 20:33:21      阅读:75      评论:0      收藏:0      [点我收藏+]

?# NodeJS基础与实战

Node是什么

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

运行环境:

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

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

Node环境搭建

Node.js运行环境安装

官网:https://nodejs.org/en/

技术分享图片

Node环境安装失败解决

1. 错误代号2502、2503

失败原因:系统帐户权限不足。

技术分享图片

解决办法:

1.以管理员身份运行powershell命令行工具

2.输入运行安装包命令 msiexec /package node安装包位置

2. 执行命令报错

技术分享图片

失败原因:Node安装目录写入环境变量失败

解决办法:将Node安装目录添加到环境变量中

PATH环境变量

存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置。

技术分享图片

比如:将迅雷的exe文件目录添加到系统变量path当中,在命令行中就可以用thunder来打开迅雷

Node快速入门

Node.js的组成

  • JavaScript 由三部分组成,ECMAScriptDOMBOM

  • Node.js是由ECMAScriptNode环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。

技术分享图片

Node.js基础语法

  • 所有ECMAScript语法在Node环境中都可以使用

  • 在Node环境下执行代码,使用Node命令执行后缀为.js的文件即可

技术分享图片

命令行使用小技巧:

  • clear 清除命令行
  • node执行js的按tab自动补全
  • 在工作目录shift鼠标右键打开命令行免去切换到工作目录

Node.js全局对象global

浏览器中全局对象是window,在Node中全局对象是global

Node中全局对象下有以下方法,可以在任何地方使用,global可以省略。

  • console.log() 在控制台中输出
  • setTimeout() 设置超时定时器
  • clearTimeout() 清除超时时定时器
  • setInterval() 设置间歇定时器
  • clearInterval() 清除间歇定时器

Node的模块及第三方包

Node.js模块化开发

JavaScript开发弊端

JavaScript在使用时存在两大问题,文件依赖和命名冲突

技术分享图片

软件中的模块化开发

一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。

技术分享图片

Node.js 中模块化开发规范

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

技术分享图片

模块成员导出

技术分享图片

模块成员的导入

技术分享图片

导入模块时.js后缀可以省略

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

技术分享图片

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

模块导出两种方式的联系与区别

技术分享图片

导出多个成员时使用:

module.exports = { 
    name: 'zhangsan',
    ...
}

导出单个成员时使用:

exports.version = version;

系统模块

系统模块概述

Node运行环境提供的API. 因为这些API都是以模块化的方式进行开发的, 所以我们又称Node运行环境提供的API为系统模块

技术分享图片

系统模块fs文件操作

技术分享图片

举例:读取同目录下helloworld.js的内容

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

// 2.通过模块内部的readFile读取文件内容
fs.readFile('./01.helloworld.js', 'utf8', (err, doc) => {
    // 如果文件读取出错err 是一个对象 包含错误信息
    // 如果文件读取正确 err是 null
    // doc 是文件读取的结果
    console.log(err);
    console.log(doc);
});

==注意:如果文件读取正确 err是 null==

系统模块fs文件操作

技术分享图片

举例:向同级目录下demo.txt写内容,demo.js不存在则自动创建

const fs = require('fs');

fs.writeFile('./demo.txt', '即将要写入的内容', err => {
    if (err != null) {
        console.log(err);
        return;
    }

    console.log('文件内容写入成功');
})

系统模块path路径操作

为什么要进行路径拼接:

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

路径拼接语法

技术分享图片

相对路径VS绝对路径

  • 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录

  • 在读取文件或者设置文件路径时都会选择绝对路径

  • 使用__dirname获取当前文件所在的绝对路径

举例:读取绝对路径下的helloworld.js

const fs = require('fs');
const path = require('path');

console.log(__dirname);
console.log(path.join(__dirname, '01.helloworld.js'))

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

第三方模块

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

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

  • 以js文件的形式存在,提供实现项目具体功能的API接口。

  • 以命令行工具形式存在,辅助项目开发

获取第三方模块

  • 下载:npm install 模块名称

  • 卸载:npm unintall package 模块名称

全局安装与本地安装:

  • 命令行工具:全局安装

  • 库文件:本地安装

nodemon

nodemon是一个命令行工具,用以辅助项目开发。

在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。

使用步骤:

1.使用npm install nodemon –g 下载它

2.在命令行工具中用nodemon命令替代node命令执行文件

技术分享图片

nrm

nrm ( npm registry manager ):npm下载地址切换工具

npm默认的下载地址在国外,国内下载速度慢

使用步骤:

1.使用npm install nrm –g 下载它

2.查询可用下载地址列表 nrm ls

3.切换npm下载地址 nrm use 下载地址名称

Gulp

基于node平台开发的前端构建工具

将机械化操作编写成任务, 想要执行机械化操作时执行一个命令行命令任务就能自动执行了,用机器代替手工,提高开发效率。

package.json文件

Node.js中模块的加载机制

Nodejs学习笔记

原文:https://www.cnblogs.com/garyxi/p/12093240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!