如何使用node.js

  1. 命令行窗口(小黑屏)、CMD窗口、终端、shell

    • 开始菜单 -->运行 --> CMD --> 回车

    • 常用的指令:

      ​ dir 列出当前目录下的所有文件

      ​ cd 目录名 进入到指定的目录

      ​ md 目录名 创建一个文件夹

      ​ rd 目录名 删除一个文件夹

    • 目录

      . 表示当前目录

      表示上一级目录

    • 环境变量(windows系统中变量)

      ​ path

      • 当我们在命令行窗口打开一个文件,或调用一个程序时,系统会首先在当前目录下寻找文件程序,如果找到了则直接打开了,如果没有找到则会依次到环境变量path的路径中寻找,直到找到为止,如果没找到则报错

      • 所以我们可以将一些经常需要访问的程序和文件的路径添加到path中,这样我们就可以在任意位置来访问这些文件和程序了

  2. 进程和线程

    • 进程

      负责为程序运行提供必备的环境

    • 线程

      计算机中的最小的计算单位,负责执行进程中的程序

    • 单线程

      JS是单线程

    • 多线程

Node.js简介

​ Node.js是一个能够在服务器运行JavaScript的开放源代码、跨平台JavaScript运行环境

模块化

如果程序设计的规模达到了一定程度,则必须对其进行模块化

在Node中,一个JS文件就是一个模块

在Node中,每一个js文件中的js代码都是独立运行在一个函数中,而不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问

在node中,通过require()函数来引入外部模块

require()可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块

这里路径,如果使用相对路径,必须以**.…**开头

使用require()引入模块后,函数会返回一个对象,这个对象代表的是引入的模块

向外部暴露属性或方法

请添加图片描述

我们使用require()引入外部模块时,使用的就是模块标识,我们可以通过模块标识来找到指定的模块

  • 模块分成两大类

    • 核心模块

      由node引擎提供的模块

      核心模块的标识就是模块的名字

    • 文件模块

      由用户自己创建的模块

      文件模块的标识就是文件的路径(绝对路径、相对路径)

在node中有一个全局对象global,它的作用和网页中window类似,在全局中创建的变量都会作为global的属性保存,方法都会作为global的方法保存

请添加图片描述

exports 和 module.exports

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

​ exports.xxx=xxx

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

​ module.exports.xxx=xxx

​ module.exports = {}

包结构

包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件

-package.json 描述文件(必需)

​ -bin 可执行二进制文件

​ -lib js代码

​ -doc 文档

​ -test 单元测试

json文件中不能写注释!!!

NPM(Node Package Manager)

NPM命令

  • npm -v

    -查看版本

  • npm version

    -查看所有模块的版本

  • npm

    -帮助说明

  • npm search 包名

    -搜索模块包

  • npm install 包名

    -在当前目录安装包

  • npm install 包名 -g

    -全局模式安装包

  • npm remove 包名

    -删除包

  • npm install 包名 --save

    -安装包并添加到依赖中

  • npm install

    -下载当前项目所依赖的包

cnpm

安装淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

使用

cnpm install express

通过npm下载的包都放到node_modules文件夹中

通过npm下载的包,直接通过包名引入即可

var math = require("math");
console.log(math.add(123,456));

node搜索包的流程

node在使用模块名字来引入模块时,它会在当前目录的node_modules中寻找是否含有该模块,如果有则直接使用,如果没有则去上一级目录的node_modules中寻找,直到找到磁盘的根路径。如果依然没有,则报错

Buffer(缓冲区)

在buffer中存储的都是二进制数据,但是在显示时都是以16进制的形式显示

使用buffer不需要引入模块,直接使用即可

buffer中每一个元素的范围是从00 - ff 0-255

文件系统(File System)

文件系统简单来说就是通过Node来操作系统中的文件

使用文件系统,需要先引入fs模块,fs是核心模块,直接引入不需要下载

同步文件的写入

打开文件

var fd = fs.openSync("hello.txt","w");

写入内容

fs.writeSync(fd,"今天天气真不错~~~");

关闭文件

fs.closeSync(fd);

异步文件写入

打开文件

异步调用方法,结果都是通过回调函数的参数返回

fs.open("hello2.txt","w",function(err,fd){
	if(!err){
		console.log(fd);
	}else{
		console.log(err);
	}
});

写入文件

fs.write(fd,"这是异步写入的内容",function(err){
	if(!err){
		console.log("写入成功~~");
	}
});

关闭文件

fs.close(fd,function(err){
	if(!err){
		console.log("文件已关闭~~");
	}
})
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值