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 你叫什么名字?衣兄先生 你好呀 衣兄先生!

  

    

原文地址:https://www.cnblogs.com/yixiongqiang/p/13825576.html