zoukankan      html  css  js  c++  java
  • Node笔记(新手入门必看)

    . 初识Node.js

    1.1 Node.js是什么

    • Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
      • Node.js不是一门语言
      • Node.js不是库(library)、不是框架(frame)
      • ==Node.js是一个JavaScript运行环境==
      • <u>简单点来讲就是Node.js可以解析和执行JavaScript代码</u>
      • ==以前只有浏览器可以解析和执行JavaScript代码==
      • 也就是说现在的JavaScript可以完全脱落浏览器来运行,一切都归功于:Node.js
      • 构建于chrome的v8引擎之上
        • 代码只是具有特定格式的字符串
        • 引擎可以帮你去解析和执行
        • chrome的V8引擎是目前工人的解析执行js代码最快的
        • node.js作者把Google Chrome中的V8引擎移植了出来,开发了一个独立的js运行环境
    • 浏览器中的JavaScript
      • ECMAscript
        • js基本语法
      • BOM
      • DOM
    • Node.js中的JavaScript
      • 没有BOM、DOM
      • 有ECMAScript
      • 在Node这个JavaScript执行环境中为JavaScript提供了一些服务器级别的操作API
        • 例如文件的读写
        • 网络服务的构建
        • 网络通信
        • http服务器
        • 等处理(相当于开发web服务器,学习对应的api即可)
    • Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
      • event-driven 事件驱动
      • non-blocking I/O model 非阻塞IO模型(异步)
      • lightweight and efficient. 轻量和高效
      • 随着课程慢慢学习会明白事件驱动、非阻塞IO模型
      • ==NodeJS以事件驱动著名,通过异步的编程达到高吞吐量高性能。==
    • Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
      • npm是世界上最大的开源库生态系统
      • 绝大多数JavaScript相关的包都存放在了npm上,这样做的目的是为了让开发人员更方便的去下载使用
      • npm是基于node.js开发的包管理工具

    1.2 ==node的API参考文档的使用:==

    • 黑点后面代表参数,例:

      • request <http.IncomingMessage>

      如果是方法它会告诉你方法的参数是什么,是否可选的。

      上述request代表绑定函数的参数,因为它是一个事件因此肯定需要绑定一个函数,后面的连接为这个参数的类型,功能上能够调用什么变量和方法。

    • 加()的代表方法,不加()的代表属性

    1.3 Node.js能做什么

    • web服务器后台
    • 命令行工具
      • npm
      • git(C语言)
      • hexo(node)
      • 。。。
    • 对于前端开发工程师来讲,接触node最多的是使用它的命令行工具
      • 自己写的很少,主要是使用别人第三方发布的
      • webpack
      • gulp
      • npm

    1.4 达到目标

    • B/S编程模型
      • browser-Server
      • back-end
      • 任何服务端技术这种BS编程模型都是一样,和语言无关
      • Node只是一个工具
    • 模块化编程
      • RequireJS
      • SeaJS
      • css中可以使用@import('文件路径')来实现引入外部文件
      • 以前认知的js智能通过script标签来加载
      • 在Node中可以像@import一样来引用加载JavaScript脚本文件
    • Node常用API
    • 异步编程
      • 回调函数
      • Promise
      • async
      • generator
    • Express web开发框架
    • ECMAScript 6
      • 在课程中穿插讲解
      • 它只是一个新的语法
    • 。。。
    • 学习node不仅会帮助打开服务端黑盒子,同时有助于学习高级内容
      • Vue.js
      • React
      • angular
    • node只有js文件,代码一般为 .js文件
    1. 创建编写js文件
    2. 打开终端(命令行),定位到脚本文件所属目录
    3. 输入node 文件名执行对应的文件,显示结果

    ==注意:文件名不能使用node,最好也不要使用中文==

    • 解析执行JavaScript

    • 读写文件

      • 使用fs模块

        var fs = require('fs');
        
      • 读取文件

        fs.readFile('路径', '可选编码', function (error, data) {});//具体查看代码
        
      • ==readFile方法的第二个参数为可选参数,规定解析文件的编码,可选择utf-8编码,让他以网页原文件的形式读取,不是二进制数据==

      • 写文件

        fs.writeFile();
        

    ==Node.js中常常使用回调函数作为参数,因为是异步的==

    • HTTP
      • 详见代码。
      • ==服务器和web页面一般使用字符串进行通信==,因此json的传递需要转化为字符串
      • Ctrl+c可以关闭服务器(bash和cmd一样)
      • 在浏览器查看http请求中,有一个/favicon.ico路径,该请求是浏览器的默认行为,目的是请求网页的网站头像
      • ==响应内容只能是字符串或二进制数据(Buffer)。对象、数字、数组、布尔值都不行==,因此response.end()方法能够响应字符串和二进制数据

    什么是模块化

    • 现实中的模块化

      • 生产效率高
      • 维护方便,成本低
    • 程序中的模块化

      • 开发效率高 一次编写多次使用
      • 方便维护了(维护的成本更低)模块之间有高耦合低内聚的特点
    • 为什么要在 程序 中使用 模块化的开发方式

      • 命名冲突
      • 文件依赖
  • 相关阅读:
    并行编程——OPENMP
    并行编程——MPI/OPENMP混合编程
    C#中窗体间传递数据的几种方法
    开发人员一定要加入收藏夹的网站
    Web网站中从Sybase数据库读取的中文显示为乱码的解决方法
    数据空间和日志空间分离的操作方法
    双机集群中的数据库配置同步
    删除已损坏库方法
    RDLC报表中如何实现行交替颜色
    安装Sybase时安装界面为乱码的解决方法
  • 原文地址:https://www.cnblogs.com/att-123/p/11803022.html
Copyright © 2011-2022 走看看