node.js快速入门

1.安装

1)进入官网https://nodejs.org/en/下载nodejs,windows系统按如图所示下载;

2)安装,点击下载好的程序,安装步骤一步一步安装,安装好的界面如图;在cmd中输入 npm -v显示版本号,则表示安装成功;

 2.npm使用介绍

2.1npm指令

1)npm -v 版本号查询

2)npm uninstall express 卸载 Node.js 模块

3)npm ls 查看包是否还存在

4)npm update express 更新模块

5)npm search express 搜索模块

2.2node.js REPL

我们可以输入以下命令来启动 Node 的终端:node

2.2.1简单表达式运算

node.js可以使用加减乘除

 2.2.2使用变量

变量声明需要使用 var 关键字,如果没有使用 var 关键字变量会直接打印出来。使用 var 关键字的变量可以使用 console.log() 来输出变量。

 2.2.3下划线(_)变量

你可以使用下划线(_)获取上一个表达式的运算结果:

 2.2.4REPL命令

  • ctrl + c - 退出当前终端。

  • ctrl + c 按下两次 - 退出 Node REPL。

  • ctrl + d - 退出 Node REPL.

  • 向上/向下 键 - 查看输入的历史命令

  • tab 键 - 列出当前命令

  • .help - 列出使用命令

  • .break - 退出多行表达式

  • .clear - 退出多行表达式

  • .save filename - 保存当前的 Node REPL 会话到指定文件

  • .load filename - 载入当前 Node REPL 会话的文件内容。

 3.EventEmitter事件

3.1实例

events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。可以通过require("events");来访问该模块。

var events = require('events');       //引入events模块
var myEmitter = new events.EventEmitter(); //创建EventEmitter对象
myEmitter.on('someEvent', function(message) { 
    console.log('事件触发'+message); 
}); 
myEmitter.emit("someEvent","我是实例");   //调用函数

on 函数用于绑定事件函数,emit 属性用于触发一个事件。EventEmitter 对象如果在实例化时发生错误,会触发 error 事件。当添加新的监听器时,newListener 事件会触发,当监听器被移除时,removeListener 事件被触发。

 

3.2方法

1)addListener(event, listener) 为指定事件添加一个监听器到监听器数组的尾部。

2)on(event, listener) 为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数。

3)once(event, listener) 为指定事件注册一个单次监听器,即 监听器最多只会触发一次,触发后立刻解除该监听器。

4)removeListener(event, listener)  移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。 它接受两个参数,第一个是事件名称,第二个是回调函数名称。

5)removeAllListeners([event]) 移除所有事件的所有监听器, 如果指定事件,则移除指定事件的所有监听器。

6)setMaxListeners(n) 默认情况下, EventEmitters 如果你添加的监听器超过 10 个就会输出警告信息。 setMaxListeners 函数用于提高监听器的默认限制的数量。

7)emit(event, [arg1], [arg2], [...])  按监听器的顺序执行执行每个监听器,如果事件有注册监听返回 true,否则返回 false。

3.3error事件

EventEmitter 定义了一个特殊的事件 error,它包含了错误的语义,我们在遇到 异常的时候通常会触发 error 事件。当 error 被触发时,EventEmitter 规定如果没有响 应的监听器,Node.js 会把它当作异常,退出程序并输出错误信息。我们一般要为会触发 error 事件的对象设置监听器,避免遇到错误后整个程序崩溃。例如:

var events = require('events'); 
var emitter = new events.EventEmitter(); 
emitter.emit('error'); 

4.文件系统

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法如下所示:

var fs = require("fs")

4.1同步和异步

Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。

异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。比起同步,异步方法性能更高,速度更快,而且没有阻塞。

4.2实例

var fs = require("fs");
// 异步读取
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("异步读取: " + data.toString());
});

// 同步读取
var data = fs.readFileSync('input.txt');
console.log("同步读取: " + data.toString());

console.log("程序执行完毕。");
var fs=require("fs");
var readMe=fs.readFileSync("a.txt","utf8");
console.log(readMe);

4.3打开文件

以下为在异步模式下打开文件的语法格式:

fs.open(path, flags[, mode], callback)
  • path- 文件的路径。

  • flags- 文件打开的行为。

  • mode- 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。

  • callback- 回调函数,带有两个参数如:callback(err, fd)。

var fs = require("fs");

// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打开成功!");     
});

4.4获取文件信息

以下为通过异步模式获取文件信息的语法格式:

fs.stat(path, callback)

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性。例如判断是否为文件:

var fs = require('fs');

fs.stat('a.txt', function (err, stats) {
    console.log(stats.isFile());         //true
})

4.5写入文件

以下为异步模式下写入文件的语法格式:

fs.writeFile(file, data[, options], callback)

writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。

var fs = require("fs");
console.log("准备写入文件");
fs.writeFile('aa.txt', '我是通 过fs.writeFile 写入文件的内容',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("数据写入成功!");
   console.log("--------我是分割线-------------")
   console.log("读取写入的数据!");
   fs.readFile('aa.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("异步读取文件数据: " + data.toString());
   });
});

4.6读取文件

以下为异步模式下读取文件的语法格式:

fs.read(fd, buffer, offset, length, position, callback)

callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。

fd - 通过 fs.open() 方法返回的文件描述符。

buffer - 数据写入的缓冲区。

offset - 缓冲区写入的写入偏移量。

length - 要从文件中读取的字节数。

position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字节被读取");
      
      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

4.7删除文件

fs.unlink(path, callback)

使用unlink可以直接删除文件,例:

var fs=require('fs');
fs.unlink('a.txt', function(err) {
    if (err) {
        return console.error(err);
    }
    console.log("文件删除成功!");
 });
引入 events 模块

一点点学习,一丝丝进步。不懈怠,才不会被时代所淘汰!

原文地址:https://www.cnblogs.com/fqh2020/p/12369053.html