zoukankan      html  css  js  c++  java
  • nodeJS-01

    各版本下载:https://nodejs.org/download/release/v12.8.1/

    node安装后npm.cmd运行找不到报错,在项目中npm run serve提示npm找不到的问题解决:

    https://www.jianshu.com/p/16203726c3c7

    浏览器与服务器的交互流程

    1. 浏览器通过地址栏发出请求
    2. 通过DNS服务器解析,得到域名对应的ip地址
    3. 根据ip地址,访问服务器具体的某个文件
    4. 服务器响应这个具体的文件
    5. 浏览器获取响应,进行显示(如果是静态资源文件,如图片,样式、js文件服务器会直接返回,交给浏览器解析渲染;如果是动态的文件,服务器先进行执行,把执行后的结果再进行返回。)

    nodeJS之所以能够识别JS语言,是因为它也像浏览器一样有一个V8引擎,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。nodejs的本质:不是一门新的编程语言,nodejs是javascript运行在服务端的运行环境,编程语言还是javascript

    nodejs与浏览器的区别

    相同点:nodejs与浏览器都是浏览器的运行环境,都能够解析js程序。对于ECMAScript语法来说,在nodejs和浏览器中都能运行。

    不同点:nodejs无法使用DOM和BOM的操作,浏览器无法执行nodejs中的文件操作等功能

    配置环境变量:

    找到环境变量:计算机 --右键--> 属性 --> 高级系统设置 --> 高级 --> 环境变量

    global全局变量:(在哪都可以直接使用,不用引入其他模块)

    console.log()

    setInterval()

    setTimeout()

    clearInterval()

    clearTimeout()

    __dirname : 获取当前文件的绝对目录路径

    __filename :  获取当前文件的文件名(包含当前文件绝对目录的文件名,=>__dirname + 当前文件名)

    node模块:需要引入

    fs:文件模块

    const fs = require("fs");

    (1)读取文件:fs.readFile(文件路径,编码,function(err,data){

    })

    解析读取到文件内容的两种方式:

    1.toString()方法

    2.设置编码

    (2)写入文件:fs.writeFile(文件路径,数据,编码,(err)=>{})

    注意:

    1.写入文件时,会覆盖掉文件原来的内容

    2.在写入的文件路径不存在时,会创建一个新文件,再写入

     (3)追加文件内容:fs.appendFile(文件路径,追加内容,文件编码,err=>{})

    --追加的内容如若写入html标签,是不被解析的,因为这是node环境,但是可以用 ,回车换行符。

    --如果文件路径写错了,还是会创建一个新的文件,并写入追加的内容。

    (4)重命名文件名:fs.renameFile(要被重命名文件路径,新文件名,err=>{})

    (5) 删除文件:fs.unlinkFile(要删除文件路径,err=>{})

    (6)同步和异步读取文件:

    --异步

     --同步 (加了sync)readFileSync,没有回调函数了

     

     注意:在fs模块操作文件时,如果书写相对路径,是相对于node命令执行的位置,而不是JS文件所在位置。如果执行位置改变了,那么文件就会找不到。

    解决办法:使用绝对路径来读取文件。

     

     

     

     关于 " / " 和 " " 斜杠的问题,不同的操作系统会有不同,为了统一处理差异,path模块应运而生。

    path模块的默认操作因Node.js应用程序运行所在的操作系统而异。具体来说,当在windows操作系统上运行时,path模块将假定正在使用windows风格的路径。

     

     

     用path模块优化读取文件:

     

     path模块的其他方法:

     

     http模块:用于处理http请求

    -- 搭建node服务器

     

     前后端交互原理:

     

     

    设置响应主体,并告知浏览器响应完成

     

     res.write() 和 res.end() 的区别:

    res.write() 可以写多次,res.end() 只有一次。

    req请求详解:

     res响应详解:

     

     

     

  • 相关阅读:
    11,Django组件分页器
    10,Django于ajax
    阿里云安装Nexus搭建Maven私有仓库
    maven 自动部署到tomcat
    linux 7.2 下安装maven
    小程序防止遮罩层穿透
    Linux 下安装JDK
    Linux 命令未自动提示补全
    nginx 、tomcat 集群配置、shiro Session 共享
    nginx负载均衡配置
  • 原文地址:https://www.cnblogs.com/haoqiyouyu/p/14162343.html
Copyright © 2011-2022 走看看