node.js基础

node js基础入门

1.什么是nodejs

node.js是基于Chrome v8引擎的javascript 运行时(运行环境)
node.js的规范:commonjs规范

2.如何进入node.js(两种方式)

1.js文件方式:通过 js文件的方式(浏览器f12)
2.交互式:(node+文件名)
3.退出:exit

3.什么是模块化?

1.一个js文件就是一个模块
2.每个模块都是一个独立的作用域,在这个文件中定义的变量、函数、对象都是私有的,对其他文件不可见。

作用:1.能够复用
    2.防止命名冲突

4.如何导入和导出

导入:require
导出:module.exports

5.模块化的分类(3种)

内置模块:由node本身提供,不需要单独安装(npm),直接require(引入)即可

自定义模块:由我们自己创建,比如tools.js/user.js  

第三方模块:由社区或者个人提供,需要npm安装

【5-1】内置模块:

    核心模块(先引入在使用):
    fs:文件操作模块,
    http:网络操作模块
    url:解析地址模块
    path:路径操作模块
    querystring:解析参数字符串的模块

【5-2】自定义模块:

    由开发人员创建的模块(js文件)
    1.基本使用:
        【1-1】创建模块
        【1-2】引入模块
        注意:自定义模块的路径必须以./获取../开头
    2.加载模块
        【2-1】require('./a')     // 推荐使用,省略.js后缀!
        【2-2】require('./a.js')

【5-3】第三方模块:

    【3-1】由社区或个人提供的
    【3-2】比如chalk(是一款改变运行环境时改变代码颜色的第三方模块)

6.创建http服务器

http.createserver((req,res))=>{
        //http状态值:200
        //内容的类型(响应头,解决中文编码问题)
    response.writeHead(200,{"content-type":text/html;charset:utf-8"}) 
    res.send("创建服务器成功")
}).listen(3000)

1.require函数用来获取node.js提供的模块;
2.request参数是客户端发来的信息;
3.response参数是服务器即将发送至客户端的消息;
4.端口设为3000
5.接着浏览器 输入127.0.0.1:3000 || localhost:3000即可访问当前的http服务,返回值是"创建服务器成功"

7.有关URL的解释

http://localhost:3000/user?name="李四"&password =123456
【http://localhost:3000是服务器部分,user?name="李四"&password =123456是客户端请求的参数】
//引入http模块
const http = require('http');
//引入URL地址
const url = require('url');
//创建服务器
http.createServer((req, res)=>{
//内容的类型(响应头,解决中文编码问题)
res.writeHead(200, {'Content-Type': 'text/plain'});
// 解析url参数
var params = url.parse(req.url, true).query;
res.write("名字::" + params.name);
res.write("
");
res.write("密码:" + params.city);
res.end();
}).listen(3000);
//查看参数
location.pathname()

8.关于node.js的结构方式引入

//结构的方式将文件引入
    var {a,b}=require("文件")
//将a的名字改为aaa,并将此进行解构赋值
    var({a:aaa,b})=require("文件名)

9.关于对象的浅拷贝

es6:
    var obj2 = {...obj}
es5:将此对象 给到一个新对象
    var obj2 = Object.assign({},obj)

10.关于node的操作命令

【10-1】.找回删除的node-module文件
    1.会产生package.json包管理工具

            npm init -y

    2.根据package.json里的依赖重新下载

            npm i或者yarn命令

    3.找回node-module文件

11.文件操作模块

    同步:sync
    异步:async
    流:stream

同步:
    const fs = require("fs")
    //追加文件,不覆盖
    var str1 = fs..appendFileSync("文件路径",'追加内容',"utf-8")
    //读取文件
    var str2 = fs.readFileSync("./a.txt","utf-8")
    //写入路径覆盖 
    var str3 = fs.writeFileSync("./a.txt","替换内容","utf-8")

异步:
    const fs  =require("fs")
    fs.readFile("文件路径","utf-8",(err,data)=>{
        if(!err){
            console.log(data)
        }
    })
    fs.writeFile("文件路径","utf-8",(err,data)=>{
        if(!err){
            console.log(data)
        }
    })

流:
    var fs = fs.createReadstream("./a.txt")
    var str=""
    rs.on("data",(thunk)=>{
        str+=thunk
    })
    rs.on("end",()=>{
        console.log(str)
    })

流的拷贝:
    const fs = require('fs')
    var rs=fs.createReadStream("./a.txt")
    var ws=fs.createWriteStream("./b.txt")
    rs.pipe(ws)

(以下内容可参考npm说明文档)

1.引入
const cheerio = require('cheerio')
方法1:
    //解析字符串数据
    cheerio.load()
    //防止文字乱码
    res.setEnnding('utf-8')
2.当前文件的文件名:

        __firname

    【join相当于当前文件目录加上了HTmL(前+后)拼接】
    var url = path.join(__firname,'/one.html')
    console.log(url)//绝对路径
3.当前模块的目录名:

       __dirname

       【resolve相对路径转绝对路径(类似于CD命令)】
    var url1 = path.resolve(__dirname,'..',"/kt.txt")
    console.log(url1)

4.取得当前文件扩展名
    var path=require('path');  /*nodejs自带的模块*/
    var extname=path.extname("123.html");//获取文件的后缀名
    console.log(extname)
原文地址:https://www.cnblogs.com/cc0419/p/12109456.html