1、安装node,在任意文件夹下按shift键选中“在此处打开PowerShell窗口”或者直接在开始菜单输入cmd启动
2、常用命令:
- c:
如果我们想访问c盘,那么我们需要在命令行中输入c:就行了
- cd..
cd..就可以返回上层目录
- cd mm
cd mm即可访问mm文件夹
- dir
如果想查看该文件夹下有哪些文件,则可以在光标处输入 "dir" 命令
- 连续按两次Ctrl+C或者输入“.exit”
- 在C盘任意文件夹下输入cd可返回根目录C盘
- 输入node回车即可进入Node.js运行环境,启动 Node 的终端可直接写表达式进行运算
- 退出只需要连续按两次Ctrl+C或者输入“.exit”回车即可。
- 创建文件夹我们可以使用 md <folderName>或mkdir <folderName>命令来创建,其中md和mkdir都是建立新目录make directory的意思,完整命令是md [盘符:][路径]新目录名,比如:md c: estmyfolder
- 删除文件夹呢,使用rd或rmdir命令,完整命令rd /s /q [盘符:][路径]新目录名,
因为rd只能删除空的文件夹,而如果其中有子文件或子文件夹的时候就会停下来,这时我们加上/s就可以直接删除,但是删除过程中会提示你是否确定删除,对于懒癌患者我们有添加了/q,即quiet,安静模式;所以使用以上命令会完整删除你选中的整个文件夹
- 清屏 全部清理掉了输入cls
- 查看npm版本:npm -v
- 更新npm版本:npm install npm -g
- 使用 npm 命令安装模块 express:npm install express ,使用var express = require('express');
- 卸载express模块:npm uninstall express
- 更新模块:npm update express
3、同步读取readFileSync和异步读取readFile的区别案例
(1)同步读取readFileSync
创建一个文件 input.txt,内容:菜鸟教程官网地址:www.runoob.com
创建 main.js 文件, 代码如下:
var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("程序执行结束!");
执行:node main.js
结果:菜鸟教程官网地址:www.runoob.com 程序执行结束!
(2)异步读取readFile
var fs = require("fs"); fs.readFile('input.txt', function (err, data) {if (err) return console.error(err); console.log(data.toString());}); console.log("程序执行结束!");
执行:node main.js
结果:程序执行结束! 菜鸟教程官网地址:www.runoob.com
4、events.EventEmitter,EventEmitter 提供了多个属性,如 on 和 emit。on 函数用于绑定事件函数,emit 属性用于触发一个事件
//main.js var events = require('events'); var eventEmitter = new events.EventEmitter(); // 监听器 #1 var listener1 = function listener1() { console.log('监听器 listener1 执行。'); } // 监听器 #2 var listener2 = function listener2() { console.log('监听器 listener2 执行。'); } // 绑定 connection 事件,处理函数为 listener1 eventEmitter.addListener('connection', listener1); // 绑定 connection 事件,处理函数为 listener2 eventEmitter.on('connection', listener2); var eventListeners = eventEmitter.listenerCount('connection'); console.log(eventListeners + " 个监听器监听连接事件。"); // 处理 connection 事件 eventEmitter.emit('connection'); // 移除监绑定的 listener1 函数 eventEmitter.removeListener('connection', listener1); console.log("listener1 不再受监听。"); // 触发连接事件 eventEmitter.emit('connection'); eventListeners = eventEmitter.listenerCount('connection'); console.log(eventListeners + " 个监听器监听连接事件。"); console.log("程序执行完毕。");
2 个监听器监听连接事件。
监听器 listener1 执行。
监听器 listener2 执行。
listener1 不再受监听。
监听器 listener2 执行。
1 个监听器监听连接事件。
程序执行完毕。
5、exports模块系统
//hello.js 页面 function Hello() { var name; this.setName = function(thyName) { name = thyName; }; this.sayHello = function() { console.log('Hello ' + name); }; }; module.exports = Hello;
//main.js页面 var Hello = require('./hello'); hello = new Hello(); hello.setName('BYVoid'); hello.sayHello();
执行:node main.js
结果:hello.setName('BYVoid');
6、 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口
//server.js 的文件 var http = require('http'); http.createServer(function (request, response) {// 发送 HTTP 头部 // HTTP 状态值: 200 : OK// 内容类型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'});// 发送响应数据 "Hello World" response.end('Hello World ');
}).listen(8888);// 终端打印如下信息 console.log('Server running at http://127.0.0.1:8888/');
执行:node server.js
结果:Server running at http://127.0.0.1:8888/
7、定时器
__filename 表示当前正在执行的脚本的文件名(注意前面是两个下划线)
__dirname 表示当前执行脚本所在的目录。
setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。
clearTimeout( t ) 全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的定时器。
setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。
8、util 是一个Node.js 核心模块,提供常用函数的集合,var util = require('util');
util.isArray(object)如果给定的参数 "object" 是一个数组返回true,否则返回false。
util.isRegExp(object)如果给定的参数 "object" 是一个正则表达式返回true,否则返回false
util.isDate(object)如果给定的参数 "object" 是一个日期返回true,否则返回false
util.isError(object)如果给定的参数 "object" 是一个错误对象返回true,否则返回false
9、fs文件系统var fs = require("fs")
- 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()
- 打开文件fs.open(path, flags[, mode], callback)
- 获取文件信息fs.stat(path, callback)
- 写入文件fs.writeFile(file, data[, options], callback)
- 读取文件fs.read(fd, buffer, offset, length, position, callback)
- 关闭文件fs.close(fd, callback)
- 截取文件fs.ftruncate(fd, len, callback)
- 删除文件fs.unlink(path, callback)
- 创建目录fs.mkdir(path[, options], callback)可以添加 recursive: true 参数
示例fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => {
if (err) throw err;
});
- 读取目录fs.readdir(path, callback)
- 删除目录fs.rmdir(path, callback)