zoukankan      html  css  js  c++  java
  • Node.js

      闲暇之余,总想写点什么,而前段时间的面试,也有面试官问到关于Node的相关知识。所以今天开始就会陆陆续续的学习一下node的相关知识。如果有不足的地方,还请大家指出来。

      其实Node一直都存在前端的周围,比如最常见的NPM下载依赖包,但例如我,在之前也就止步于此了。而没有将Node真正的价值体现出来。

      既然要写还是先介绍一下node吧!

      码云仓库地址:https://gitee.com/yixiongA/node.git;注:仓库文件以学习的天数为分支

    1:前篇

      1:Node是一个开源与跨平台的JavaScript运行环境

      2:Node可以在浏览器外运行V8 JavaScript引擎

      3:Node是单个进程的运行,不需要每个请求都创建新的线程,而且是范式编写的库通常是非阻塞的,而且在进行I/O操作时,Node会在响应返回时就恢复了操作,而不是阻塞线程。

    简单示例

    例(1)
    let http=require('http') //引入http模块 let hostname='127.0.0.2' //域名 let port=3000 //端口 let server =http.createServer((req,res)=>{ //createServer()方法创建一个新的HTTP服务器,并返回 res.statusCode=200 //设置statusCode属性为200,表示响应成功 res.setHeader('Content-Type','text/plain') //Content-Type为响应头 res.end('Hello') //end为关闭响应 }) server.listen(port,hostname,()=>{ console.log(`服务器运行在 http://${hostname}:${port}/`) })

      而每次在接收到新的请求时,request事件会被调用,并且会提供两个对象

      1:请求对象(http.IncomingMessage对象)

      2:响应对象(http.ServerResponse对象)

    2:安装

      直接在官方下载自己所需要的软件包即可。地址:http://nodejs.cn/download/

      安装完成后。在CMD中使用 node -v,来查看安装版本,以及是否安装成功

      C:Users>Node -v
      v14.11.0

    3:了解

      以下统称JavaScript为JS

      在学习Node.js之前,因为Node是作为JavaScript的运行环境,当然学习Node的首要条件,就是对JS的了解,而在这里就不对JS在述说太多。而在

    Node.js中异步编程是它的基本组成部分

    • 异步编程与回调
    • 定时器
    • Promise
    • Async 与 Await
    • 闭包
    • 事件循环

     4:通过编码退出进程

       当在控制台中运行程序时,最方便快捷的就是使用ctrl+c,将其关闭,但是在这里是讲的是使用编码退出进程

       其中process提供了便利的方法:

     process.exit

      process.exit();当Node运行到此行代码时,进程会立即非正常的强制终止。

      也可以在使用process.exit(1),传入一个整数,向操作系统发送退出码,并系统默认为0

      有关退出码的信息,详见 http://nodejs.cn/api/process.html#process_exit_codes

     process.kill(process.pid,"信号"

      process.pid 属性返回进程的 PID。

      信号分别有SIGKILL / SIGTERM

      1:SIGTERM 是指告诉进程言正常终止的信号

      2:SIGKILL 是告诉进程立即终止进程的信息 与process.exit()类似

    简单示例

    例(2)
    代码例(1)后跟
    setTimeout(() => { console.log('退出中'); // process.exit(0) // 默认为0,指立即强制终止进程 //process.pid属性返回进程的 PID。 process.kill(process.pid, 'SIGTERM') //SIGTERM 是指告诉进程言正常终止的信号 //SIGKILL 是告诉进程立即终止进程的信息 与process.exit()类似 }, 1000);

     5:在Node.js中获取环境变量

      在process核心模块中提供了env属性,而这个属性就承载了在启动进程的=时候的所有环境变量

      默认为development

      process.env.NODE_ENV // "development"

    6:如何使用Node

      在终端打开 运行Node

      例:

      C:UsersLenovo、>node
      Welcome to Node.js v14.11.0.
      Type ".help" for more information.
      > console.log("node")
      node     //打印
      undefined //这个是打印console.log()的参数
      >node dome.js //运行js文件

    7:在Node.js中从命令行接收输入

      question()

        显示第一个参数,并且等待用户输入,当按下回车键时,则会调用回调函数。并在回调函数中,就关闭了readline接口。

      readline(逐行读取)

        readline.Interface类

            该类的实例时使用readline.createInterface()方法构造的。每个构造的实例都关联一个可读流(input)

          和一个可写流(output)。output流用于为到达的用户输入打印提示,并从input流读取。

        close事件

            当触发了close事件,代表实例完成

            rl.close() 

          line事件

            当用户按下<Enter>键时触发

            rl.on('line', (input) => {
              console.log(`接收到:${input}`);
            });

        pause事件

    例:

    const readline = require('readline').createInterface({
      input: process.stdin,
      output: process.stdout
    })
    
    readline.question(`你叫什么名字?`, name => {
      console.log(`你好 ${name}!`)
      readline.close()
    })
    
    终端: C:UsersLenovo、Desktop odeDome
    >node 3.js 你叫什么名字?衣兄先生 你好呀 衣兄先生!

      

        

  • 相关阅读:
    HTML元素解释
    Java命名规范
    HDU 1058 Humble Numbers(DP,数)
    HDU 2845 Beans(DP,最大不连续和)
    HDU 2830 Matrix Swapping II (DP,最大全1矩阵)
    HDU 2870 Largest Submatrix(DP)
    HDU 1421 搬寝室(DP)
    HDU 2844 Coins (组合背包)
    HDU 2577 How to Type(模拟)
    HDU 2159 FATE(二维完全背包)
  • 原文地址:https://www.cnblogs.com/yixiongqiang/p/13825576.html
Copyright © 2011-2022 走看看