1. 程式人生 > 程式設計 >javascript實現查詢商品功能

javascript實現查詢商品功能

1.Node.js概述

Node.js是執行在伺服器端的環境

(1)對比JS

JS執行在客戶端瀏覽器,存在多種瀏覽器,存在相容性問題Node.js執行在伺服器端,只有V8引擎一種直譯器,程式碼不存在相容性問題。

兩者都有共同的自定義物件和內建物件(ES物件),不同的宿主物件

JS用於操作瀏覽器的內容,實現使用者互動Node.js用於伺服器端開發,例如操作資料庫,呼叫其它伺服器

(2)執行方式

指令碼模式

node 拖拽檔案回車

互動模式

node 回車進入互動模式

退出互動模式兩次ctrl+c ctrl+d

(3)特點

屬於單執行緒執行邏輯,不會產生死鎖,支援數萬個併發連線,適合做基於社交網路的大規模WEB應用

不適合做CPU密集型應用

2.全域性物件

(1)global

檢測變數或者函式是否為全域性的

Node.js的互動模式下,屬於全域性作用域

在指令碼檔案下,不屬於全域性作用域

js下global名稱為window

(2)console物件

提供了一組用於除錯控制檯的方法

console.log(1); //輸出日誌

console.info(2); //輸出訊息

console.warn(3); //輸出警告

console.error(4); //輸出錯誤

console.time() 開始計時

console.timeEnd() 結束計時

開始計時和結束計時兩者輸出的值要保持一致

(3)process物件

程序:在計算機上開啟的任何軟體都代表程序

process.arch 檢視當前CPU架構

process.platform 檢視當前的作業系統

process.version 檢視當前Node.js的版本號

process.pid 檢視當前的程序編號

process.kill() 結束指定編號的程序

(4)Buffer物件

緩衝區,緩衝儲存器

是記憶體中的一塊臨時儲存資料的區域

var buf=Buffer.alloc(5, 'abcde');//建立buffer,分配空間大小為5個位元組,並存儲資料

buf.toString() //將buffer轉為字串

Node.js下每個漢字佔三個位元組

1.模組 require:是一個函式,用於引入其他模組 module.exports:匯出的物件,預設是一個空物件要暴露的內容需要新增到物件中 __dirname:獲取當前模組的絕對路徑 __filename:獲取當前模組的絕對路徑+模組名稱
2.模組的分類 模組分為三種:自定義模組、核心模組、第三方模組
以路徑開頭不以路徑開頭
檔案形式模組require('./circle.js')require('querystring')
常用於引入自定義模組用於引入官方提供核心模組
目錄形式require('./demo-01.js')require('tao') 首先會找到目錄下查詢package.json檔案中main對應的檔案,果找不到自動查詢01.js首先會到當前目錄下的node_modules目中尋找tao目錄,用於引入第三方模組如果找不到會一直往上一級目錄的node_modules目錄中尋找 3.包的npm 包:指的是第三方模組,是一個目錄模組 npm:用來管理包的工具模組,屬於是第三方模組,在Node.js安裝時候已經附帶安裝 npm-v檢視npm版本 CommonJS:是一種規範,制定了Node.js的模組規範 網址:www.npmjs.com (1)切換命令列路徑 在要進入的目錄的空白區域,按住shift,單擊滑鼠右鍵,選擇“在此處開啟powershell視窗” 在cmd下 cd貼上路徑 如果有碟符的切換,需要新增碟符名稱: (2)npm命令 npminit-y初始化一個package.json檔案,記錄下載安裝的包
npminstall包名稱下載安裝指定的包,會將包放入到目前目錄的node_modules目錄下,如果不存在會自動建立;同時會生成package-lock.json的檔案用於記錄所有包的版本號,package.json中只是記錄當前安裝包的安裝資訊
npminstall自動下載package.json和package-lock.json中記錄的包
4.查詢字串模組(querystring)
查詢字串:瀏覽器向伺服器傳遞資料的一種方式,位於網址中 http://search.jd.com/Search?keyword=筆記本&price=4000 協議域名或者IP字串查詢 查詢字串模組:專門用於操作查詢字串的工具 parse()將查詢物件解析為物件
5.url 統一資源定位,網際網路上的任何的資源(html.css.js,js,影象,視訊,聲音)都有相應的URL http://www.codeboy.com:9999/product_details.html?lid=13#one 協議域名或者IP地址埠檔案在伺服器的路徑查詢字串錨點
6.定時器模組(timer) (1)一次性定時器 開啟 lettimer=setTimerout(回撥函式,間隔時間) 當間隔時間到了,會呼叫一次回撥函式,間隔時間單位是毫秒 清除 clearTimeout(timer) (2)週期性定時器 開啟 lettimer=setlnterval(回撥函式,間隔時間) 每隔一段時間,呼叫一次回撥函式 清除 clearinterval(timer) (3)立即執行定時器 開啟 vartimer=setlmmediate(回撥函式) 清除 clearlmmediate(timer) 開啟 process.nextTick(回撥函式) 沒有清除
定時器的回撥函式是在事件佇列中執行,當程式執行完才會執行事件佇列的回撥函式