Node基础知识

NodeJS是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境
Node采用Google开发的v8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模

CMD命令

dir:列出当前目录下所有文件
cd后跟目录名,进入到指定的目录
md后跟目录名,创建一个文件夹
rd后跟目录名,删除一个文件夹

目录

**.**表示当前目录
**…**表示上一级目录

环境

当我们在命令行窗口打开一个文件,或者调用一个程序时,
系统会首先在当前目录下寻找文件程序,如果找到了则直接打开
如果没有找到则会依次到环境变量path的路径中寻找,直到找到为止,如果没找到,则报错。
所以我们可以将一些经常需要访问的文件和程序添加到path中,这样我们可以在任意位置访问到这些文件和程序了。

进程

作用:负责为程序的运行提供必备的环境,相当于工厂中的车间

线程

作用:负责执行进程中的程序,相当于工厂中的工人

单线程

相当于一个人干一件事
JS,chorme浏览器都是单线程
Node处理请求时是单线程

多线程

每进来一个请求,就创建一个线程去处理请求
是主流,但有可能造成并发问题

Node的用途

(1)Web服务API,比如REST
(2)实时多人游戏
(3)后端的Web服务,例如跨域、服务端的请求
(4)基于Web的应用
(5)多用户端的通信,如即时通信

Node模块化

require(‘’)

作用:引入外部的模块
传递一个文件的路径作为参数,这里如果使用相对路径,必须以./或…/开头
使用require()引入模块后,该函数会返回一个对象,这个对象代表的是引入的模块
在Node中,每一个js文件中的js代码都是独立运行在一个函数中的,而不是全局作用域,
所以一个模块中的变量和函数在其他模块中无法访问
向外部暴露属性或方法
通过exports暴露;
例如:exports.x = '我是暴露的x';
访问时

 var md = require('./1.js');
 console.log(md.x);//我是暴露的x

模块分成两大类

核心模块
——由node引擎提供的模块
——核心模块的标识就是模块的名字,不用再写路径

var fs =  require('fs')

文件模块
——由用户自己创建的模块
——文件模块的标识就是文件的路径(相对,绝对)

global

——在node中有一个全局对象global,它的作用和网页中window类似
——在全局创建的变量都会作为global的属性保存
——在全局创建的函数都会作为global的方法保存
当node在执行模块中的代码时,它首先在代码的最顶部,添加如下代码

function (exports,require,module,_filename,_dirname){

在代码最底部,添加如下代码:

}

将模块包装在一个函数中执行,并且在函数执行时,同时传递5个形参
exports:该对象用来将变量或函数暴露到外部
require:用来引入外部的模块
module:代表当前模块本身,exports就是module的属性,所以既可以使用exports导出,也可以使用module.exports导出
_filename:当前模块的完整路径
_dirname:当前模块所在文件夹的完整路径

简洁写法(不能去掉module)

module.exports = {
    name : 'yang',
    age : 18,
    sayName : function(){
        console.log(this.name);
    }
}

通过exports只能使用.的形式向外暴露内部变量

exports.xxx = xxx;

而module.exports既可以通过.的形式,也可以直接赋值

module.exports.xxx = xxx;
module.exports = {}

包简介(package)

包实际上就是一个压缩文件,解压以后还原为目录。里面最重要的是package.json(描述和介绍此文件,用于包的根目录下)。
CommonJS的包规范由包结构和包描述文件两个部分组成
包结构用于组织包中的各种文件
包描述文件用于描述包的相关信息,以供外部读取分析

包管理工具(npm)

——npm -v 查看npm的版本
——npm version 查看所有模块的版本
——npm search 包名 搜索包
——npm install /i 包名 安装包
——npm remove/r 包名 删除包
——npm install 包名 --save 安装包并添加到依赖中
——npm install 下载当前项目所依赖的包
——npm install 包名 -g 全局安装(全局安装的包一般都是一些工具)
node在使用模块名字来引入模块中,它会首先在当前目录的node_modules中寻找是否含有该模块,
如果有则使用,如果没有则去上一级目录中的node_modules中寻找,
如果有直接使用,如果没有则再去上一级目录寻找,直到找到为止
直到找到磁盘的根目录,如果还没有则报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值