zoukankan      html  css  js  c++  java
  • 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 模块

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

  • 相关阅读:
    Windows和linux(ubuntu)互传文件简便快捷的方法
    Monkey与MonkeyRunner之间的区别
    Monkeyrunner 简介及其环境搭建
    如何查看Android apk的包名?
    Android自动化测试如何获取坐标点?
    android自动化测试之Monkey--从参数讲解、脚本制作到实战技巧
    Docker 命令
    在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
    CentOS7中使用iptables
    centos7下找不到iptables文件
  • 原文地址:https://www.cnblogs.com/fqh2020/p/12369053.html
Copyright © 2011-2022 走看看