zoukankan      html  css  js  c++  java
  • node.js基本概念

    1、动态网页 和 静态网页
    动态网页:数据可以进行交互 动态改变数据
     
    2、node
    node是基于chrome的V8引擎的Javscript运行环境 
    node中的npm 是全球最大的包管理器 (全球最大的垃圾网站)
    node中的事件机制以及非阻塞式的I/O式模型 使其轻量又高效
    I:input
    o:output
     
    3、v8引擎:
    浏览器内核
    引擎
    渲染引擎
    脚本引擎
     
    4、node中是没有DOM 和BOM的概念的
     
    5、node的版本
    LTS 稳定版本:
    10.15.2(10是大版本号,15是小版本号,2是补丁)
     
    6、nodeJS和 浏览器中的JAVAscript 有什么不同?
    ①在node中没有DOM和BOM的概念 因此不会涉及到兼容
    ②node中的global process这些属性都是浏览器没有的
    ③node可以用来搭建服务器,数据库
    ④node可以用来调用底层的API 可以做文件的读写等操作
    7、node优点
    优点:高效 速度快 适合做高并发的项目
    缺点:不适合做大量计算的项目
    8、node的交互模式
    node 回车进入交互模式
    退出:
    ctrl+c 2次
    或者 ctrl+d 一次
    9、node如何运行js文件
      node.js文件名
    10、模块化
    requireJs     seaJS       CommonJS      ES6 module
       异步           异步             同步                  同步
    AMD            CMD           common             import
    模块化规范?
    如何导出模块 如何接收模块:
    define定义  return导出   require接收(requireJs )
     
    module.exports 导出   require 导入(commonJS)
     

    export default 导出    import 导入 (ES6 module)

     

    11、node中的模块分为以下三种
    ①核心模块
    ②自定义模块
    ③第三方模块
    12、(注意:<>不需要写)
    npm
    cnpm install package.json依赖安装

    cnpm install <包名> -g 全局安装

    cnpm install <包名> --save-dev 局部安装 cnpm i <包名> -S

    cnpm uninstall <包名> 卸载

    cnpm update <包名> 更新

    cnpm clear cache 清除缓存

    13、
    ①npm init 创建node的包 保证包名全网唯一
    ②npm login
    ③npm publish 上传  上传到npm官网
    14、yarn
    ①缓存
    ②异步

    cnpm install jquery qs url -S(加载jquery qs url为同步:按顺序执行)

    yarn add jquery qs url(加载jquery qs url为异步:同时分开执行)
     
    cnpm install yarn -g   全局安装

    yarn install === cnpm install   package.json依赖安装

    yarn add <包名> === cnpm install <包名> -S 局部安装

    yarn add <包名> --dev == cnpm install <包名> --save-dev 局部安装

    yarn upgrade <包名> 更新

    yarn remove <包名> 删除

    //引入http模块  node的核心模块
    const http = require("http");
    
    /*
        //商场
       const server =  http.createServer()  创建服务器
    
        //端口号
        server.listen(9000)
    
    
    
        用户说:"商店里面有没有澡巾"
        url:"http://ww.baidu.com/data"
    
        人民币
        get post
    
        要绿色  多大号的
        headers:{
            "content-type":"application/json"{name:val,pass:val}
                          "application/x-www-form-urlencoded"  表单序列化
                            name=val&pass=val
    
                            "{'name':'zhangsan','age':19}"
        }
    
    
    
    
    
        回复
            res.end() + res.write  最后的回复
            res.write();   响应
    
            content-tyepe
    
    */

    http.createServer((req,res)=>{ console.log(req.headers) /* req:request req.url 请求的地址 req.method 请求的方式 req.headers 请求头 req.body 接收post传递的参数 req.query 接收get传递过来的参数 req.request() 接收任意方式传递过来的数据 res:response res.write() 回复响应信息 可以调用很多次 res.end() 回复响应信息 做结尾 只能调用一次 res.statusCode 设置状态码 res.setheader() 设置响应头 res.writeHead(); statusCode 与setHeader的综合写法 第一次参数是状态码 第二次参数是响应头的类型 */ //res.statusCode = 200; //res.setHeader("content-type","text/plain"); res.writeHead(200,{"content-type":"text/plain;charset=utf8"}); res.write("1111"); res.write("2222"); res.end("你好"); }).listen(9000) //提示信息 console.log("http://localhost:9000") /* 响应头的类型有哪些? text/plain 文本类型 text/html html类型 text/css css类型 application/x-javascript js类型 application/json json类型 application/xml xml类型 image/png jpg gif */

    小案例:

    moduleA.js

    const moduleA = require("./moduleB");
    const cheerio = require("cheerio");
    
    console.log(moduleA._name);
    console.log(moduleA.fn("哈哈"))

    moduleB.js

    let _name = "张三";
    let fn = (name)=>{
        console.log(name);
    }
    
    
    module.exports = {
        _name,
        fn
    }
  • 相关阅读:
    java 多线程 day01 创建线程
    mysql 时间处理函数
    导出excel
    mysql 从零学习
    java 读取xlsx
    跳出多重循环
    mysql 基础
    spark 快速入门 java API
    java 反序列化PHP
    完整mybatis应用
  • 原文地址:https://www.cnblogs.com/cqdd/p/10481098.html
Copyright © 2011-2022 走看看