node.js 简介 以及 模块化 的介绍

nodejs简介

        概述:

        Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

        概述起来就是:nodejs是一个基于Chrome v8引擎设计的单线程基于事件驱动非阻塞I/O模型的的一个js运行环境。

        特点:

        1、单线程 : node.js的主线程也就是程序员写的js代码是Chrome V8引擎执行的,但它提供的异步函数是由底层c/c++语言来开启线程执行的。

        2、非阻塞的I/O模型:  Node.js 中使用事件回调的方式来解决阻塞 I/O 的情况,避免了阻塞 I/O 所需的等待。

        3、基于事件驱动(回调函数):  node.js把任务添加到事件池(event-loop),让异步任务去子线程中执行 , 然后注册一个事件 ,任务执行完毕以后 就回到主线程执行回调函数

        4、模块化:   node.js把功能按照模块来封装, 方便扩展 、维护管理,  更有利于开发大型项目

      优缺点:

        优点: 使用事件驱动、非阻塞I/O模型,异步编程,性能好速度快,资源占用小等

        缺点:  单线程,一个进程崩掉,整个服务停止;安全性不高

模块化

        概念:nodejs中的模块化是指将每个js文件会被认为单独一个的模块。模块之间是互相不可见的。如果一个模块需要使用另一个模块,那么需要通过指定语法来引入要使用的模块

        

        nodejs运行时,要引入第三方js文件就使用 require() ;也可以使用ES6中的语法 import

var 变量名 = require("要引入的文件")

        nodejs导出文件使用 module.exports

// 导出
module.exports = {
   
}

        

        nodejs中有三种模块:内置模块第三方模块自定义模块

        内置模块:不需要单独下载,node.js安装时就已下好,使用时直接用require引入

var http = require("http")
var fs = require("fs")
var url = require("url")
var querystring = require("querystring")

      第三方模块:需要下载使用,下载指令:npm i 下载的模块名

var mime = require("mime")

node.js 简介 以及 模块化 的介绍_第1张图片

       自定义模块: 自己定义的js功能模块,用 module.exports 导出;

var myquerystring = require("./myquerystring.js") 

node.js执行require() 时,经历的过程:

        1、先去当前项目中的node_modules文件夹中找要引入的文件夹 中的package.json中main字段对应的路径 然后引入
        2、如果没有就去nodejs的安装包中的全局安装路径中找
        3、如果还是没有找到 就去核心库中找

你可能感兴趣的:(node.js,node.js,前端)