1. 程式人生 > >【格爾尼卡】----node----【格爾尼卡】

【格爾尼卡】----node----【格爾尼卡】

reg 而且 pytho 奇數 測試 ins 框架 onf active

## 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); } }) ``` * 自定義模塊   

【格爾尼卡】----node----【格爾尼卡】