zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题
    夯实Java基础系列18:深入理解Java内部类及其实现原理
    夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题
    夯实Java基础系列16:一文读懂Java IO流和常见面试题
    夯实Java基础系列15:Java注解简介和最佳实践
    TClientDataSet数据源设置
    重装Delphi10.2的IDE必要设置
    自制软件的出路在何方?
    FMX相关
    Delphi Live Bindings 初探
  • 原文地址:https://www.cnblogs.com/cc0419/p/12109456.html
Copyright © 2011-2022 走看看