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

      

        

  • 相关阅读:
    高性能TcpServer(Java)
    高性能TcpServer(C#)
    高性能TcpServer(C#)
    高性能TcpServer(C#)
    高性能TcpServer(C#)
    高性能TcpServer(C#)
    高性能TcpServer(C#)
    MySQL连表Update修改数据
    windows服务器安装安全狗时服务名如何填写
    织梦ckeditor编辑器 通过修改js去除img标签内的width和height样式
  • 原文地址:https://www.cnblogs.com/yixiongqiang/p/13825576.html
Copyright © 2011-2022 走看看