zoukankan      html  css  js  c++  java
  • node基础

    ## Node简介
    
    ### 客户端的JavaScript是怎样的
    
    - 什么是 JavaScript?
    +是一个脚本语言
    +运行在浏览器(浏览器的js解析内核 v8)
    +实现用户的交互 (interactive)
    + 变量 赋值 循环 逻辑 判断 分支 对象 函数。。。。(语言自带的)
    + dom 操作 (平台赋予的)
    + bom 操作 (平台赋予的)
    + 操作本地文件 (技术可以实现 安全层面禁止)
    + ajax
    - JavaScript 的运行环境?
    +浏览器内核解析内核 es6
    
    - 浏览器中的 JavaScript 可以做什么?
    
    
    - 浏览器中的 JavaScript 不可以做什么?(不安全)
    +访问数据库
    +不能对文件进行操作
    +对os 进行操作
    +原因 是不安全 和浏览器运行机制有关
    - 在开发人员能力相同的情况下编程语言的能力取决于什么?
    
    +cordova hbuilder 平台 platform
    +java java虚拟机 (运行平台)
    +php php虚拟机
    +c# .net framework mono
    +js 解析内核 chrome v8
    - JavaScript 只可以运行在浏览器中吗?
    +不是
    
    
    
    ### 什么是Node
    +node.js 一个框架 一个库 一门语言
    +node 是一个平台
    ### 为什么是JavaScript
    +node js 不是因为js 产生的
    +node 选择了js
    +Ryan dahl
    +2009 2 月份 node有想法
    +2009 5 月份 githup 开源
    +2009 11月份 jsconf 讲解推广node
    +2010年底 被xxx公司收购
    +2018 发布有重大bug
    +npm
    +githup 世界上最大的同性交友网站 码云
    
     
    ### Node在当下Web开发领域的应用
    1. node 作为服务器来使用
    2. node 高并发中间层使用
    
    ### 哪些公司在用
    +lindin node 领英 脉脉
    +天猫 node +java+传统
    +neteasy 西山居
    ### 重点理解
    
    - Node是一个JavaScript的运行环境(平台),不是一门语言,也不是JavaScript的框架;
    - Node的实现结构;
    - Node可以用来开发服务端应用程序,Web系统;
    - 基于Node的前端工具集 npm node插件包管理工具
     
    ### node 简介
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
    Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
    Node.js 的包管理器 npm,是全球最大的开源库生态系统。
    官网 http://nodejs.cn/
    npm 插件官网:https://www.npmjs.com/
    *****
    
    ## 环境配置
    
    ### 安装包的方式安装
    
    - 安装包下载链接:
    + Mac OSX: [darwin](http://npm.taobao.org/mirrors/node/v5.7.0/node-v5.7.0.pkg)
    + Windows:
    * [x64](http://npm.taobao.org/mirrors/node/v5.7.0/node-v5.7.0-x64.msi)
    * [x86](http://npm.taobao.org/mirrors/node/v5.7.0/node-v5.7.0-x86.msi)
    - 安装操作:
    + 一路*Next*
    
    
    ### 相关版本
    
    - node版本常识
    + 偶数版本为稳定版 (0.6.x ,0.8.x ,0.10.x)
    + 奇数版本为非稳定版(0.7.x ,0.9.x ,0.11.x)
    + LTS(Long Term Support)
    + [LTS和Current区别](https://blog.csdn.net/u012532033/article/details/73332099)
    - 操作方式:
    + 重新下载最新的安装包;
    + 覆盖安装即可;
    - 问题:
    + 以前版本安装的很多全局的工具包需要重新安装
    + 无法回滚到之前的版本
    + 无法在多个版本之间切换(很多时候我们要使用特定版本)
    
    
    
    ### NVM工具的使用
    
    > Node Version Manager(Node版本管理工具)
    
    由于以后的开发工作可能会在多个Node版本中测试,而且Node的版本也比较多,所以需要这么款工具来管理
    
    
    #### 安装操作步骤
    
    1. 下载:[nvm-windows](https://github.com/coreybutler/nvm-windows/releases/download/1.1.0/nvm-noinstall.zip)
    2. 解压到一个全英文路径
    3. 编辑解压目录下的`settings.txt`文件(不存在则新建)
    
    + `root 配置为当前 nvm.exe 所在目录`
    + `path 配置为 node 快捷方式所在的目录`
    + `arch 配置为当前操作系统的位数(32/64)`
    + `proxy 不用配置`
    
    4. 配置环境变量 可以通过 window+r : sysdm.cpl
    
    + `NVM_HOME = 当前 nvm.exe 所在目录`
    + `NVM_SYMLINK = node 快捷方式所在的目录`
    + `PATH += %NVM_HOME%;%NVM_SYMLINK%;`
    + 打开CMD通过`set [name]`命令查看环境变量是否配置成功
    + PowerShell中是通过`dir env:[name]`命令
    
    5. NVM使用说明:
    
    + https://github.com/coreybutler/nvm-windows/
    
    6. NPM的目录之后使用再配置
    
    
    ### 配置Python环境
    
    > Node中有些第三方的包是以C/C++源码的方式发布的,需要安装后编译
    > 确保全局环境中可以使用python命令
    
    
    
    
    ### 环境变量的概念
    
    > 环境变量就是操作系统提供的系统级别用于存储变量的地方
    
    - Windows中环境变量分为系统变量和用户变量
    - 环境变量的变量名是不区分大小写的
    - 特殊值:
    + PATH 变量:只要添加到 PATH 变量中的路径,都可以在任何目录下搜索
    
    
    
    ### Windows下常用的命令行操作
    
    - 切换当前目录(change directory):cd
    - 创建目录(make directory):mkdir
    - 查看当前目录列表(directory):dir
    + 别名:ls(list)
    - 清空当前控制台:cls
    + 别名:clear
    - 删除文件:del
    + 别名:rm
    
    > 注意:所有别名必须在新版本的 PowerShell 中使用
    
    ###npm 使用入门
    
    官网:[https://www.npmjs.com/](https://www.npmjs.com/)
    
    安装:无需安装
    
    查看当前版本:
    
    ```
    $ npm -v
    ```
    
    更新:
    
    ```
    $ npm install npm@latest -g
    
    ```
    初始化工程
    
    ```
    $ npm init
    
    $ npm init --yes 默认配置
    ```
    
    安装包
    
    使用npm install会读取package.json文件来安装模块。安装的模块分为两类
    dependencies和devDependencies,分别对应生产环境需要的安装包和开发环境需要的安装包。
    
    ```
    $ npm install
    
    $ npm install <package_name>
    
    $ npm install <package_name> --save
    
    $ npm install <package_name> --save-dev
    ```
    更新模块
     
    ```
    $ npm update
    ```
    卸载模块
    
    ```
    $ npm uninstall <package_name>
    
    $ npm uninstall --save lodash
    ```
    
    配置npm源
    
    * 临时使用, 安装包的时候通过--registry参数即可
    
      $ npm install express --registry https://registry.npm.taobao.org
    
    * 全局使用
      ```
       $ npm config set registry https://registry.npm.taobao.org
       // 配置后可通过下面方式来验证是否成功
       npm config get registry
       //
       npm info express
      ```
    
    * cnpm 使用
    ```
       // 安装cnpm
         npm install -g cnpm --registry=https://registry.npm.taobao.org
    
         // 使用cnpm安装包
         cnpm install express
    ```
    ##模块,包 commonjs
    
    ### commonjs规范
    
    前端模块化:AMD,CMD,Commonjs
    
    Node 应用由模块组成,采用 CommonJS 模块规范。
    
    ##### 定义module
    
    每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
    
    ##### 暴露接口
    
    CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
    
    ```javascript
     var x = 5;
      var addX = function (value) {
       return value + x;
      };
      module.exports.x = x;
      module.exports.addX = addX;
    ```
    ##### 引用
    
    require方法用于加载模块。
    
    ```
     var example = require('./example.js');
      console.log(example.x); // 5
      console.log(example.addX(1)); // 6
    ```
    ### 模块的分类
    
    * 内置模块
    ```
      const process = require('process')
      const path = require('path')
      console.log(process.version)
      console.log(path.resolve('../'))
    ```
    * 第三方模块
    ```
    const request=require("request");
      console.log(request)
      request.get('http://api.douban.com/v2/movie/in_theaters', (err, response, body) => {
       if (!err) {
       // console.log(body);
       console.log(JSON.parse(body))
       } else {
       console.log(err);
       }
      })
    ```
    * 自定义模块
      
  • 相关阅读:
    在智能手机上跟踪ADS-B系统的飞机航线信息
    用C#将XML转换成JSON
    在DB2中使用EXPORT实现将数据导出文本文件
    使用Powerdesigner生成设计的数据表(一张或多张)的测试数据
    PowerDesigner常用设置
    转载自——Json.Net如何在序列化之前修改属性值
    转载自——Json.net动态序列化以及对时间格式的处理
    Newtonsoft.Json序列化和反序列
    DB2 数据库中字段特定字符替换为空
    常用公共DNS服务器地址
  • 原文地址:https://www.cnblogs.com/Guernicas/p/10394823.html
Copyright © 2011-2022 走看看