1. 程式人生 > >node.js知識點總結

node.js知識點總結

一般情況下,如果本地網站可以被自己的電腦訪問,就也可以被同一區域網內的其他電腦訪問。
本地電腦的訪問方式:

  • localhost
  • 127.0.0.1
  • 192.168.1.xxx (本地電腦的區域網 IP)
  • xx.com (域名)

其他電腦訪問我的電腦主機中的網站的方式:

  • 192.168.1.122
  • xx.com

什麼是error-first回撥模式

應用error-first回撥模式是為了更好地進行錯誤和資料的傳遞,第一個引數保留給一個錯誤error物件,一旦出錯,錯誤將通過第一個引數error返回,其餘的引數將用作資料的傳遞

   fs.readFile(filePath, function
(err, data){
if(err){ return console.log(err) } console.log(data) })

如何避免回撥地域

  • 模組化設計:將回調拆分成幾個獨立的函式
  • 組合使用generators和Promises
  • 使用async/await函式
    可以參考另一篇博文Promise使用動機

Promise

下面程式碼有什麼沒有考慮到位的地方

   new Promise((resolve, reject)=>{
       throw new Error('error')
   }).then(console.log)

沒有設定錯誤處理函式,可以參考另一篇博文詳解Promise物件

樁程式碼

樁程式碼(stub)就是在某些元件或模組中,模擬某些功能的程式碼,樁程式碼的作用是佔位,讓程式碼在測試過程中順利執行
一個例子,它實際的作用是寫一個檔案,但是這段程式碼並沒有真正做這件事

   var fs = require('fs')
   var writeFileStub = sinon.stub(fs, 'writeFile', function(path, data, cb){
       return cb(null)
   })
   expect (writeFileStub).to.be.called
   writeFileStub.restore()

測試金字塔圖

測試金字塔圖描述了單元測試(unit test),整合測試(integration tests),端到端測試(end-to-end test)在測試中佔的比例
舉個例子,測試一個HTTP API需要

  • 大量關於models的單元測試(使用樁程式碼處理)
  • 一些關於models如何和其他models互動的整合測試(未使用樁程式碼處理)
  • 少量的端到端測試,也就是真實環境下的呼叫(未使用樁程式碼處理)

如何保證你的cookie安全,如何阻止XSS攻擊

為了防止攻擊,你需要對HTTP header裡的set-cookie進行處理:

  • HttpOnly-這個屬性幫助防止跨站指令碼攻擊,它禁止通過js訪問cookie
  • secure-這個屬性告訴瀏覽器,僅允許通過HTTPS協議訪問cookie

相關推薦

node.js知識點總結

一般情況下,如果本地網站可以被自己的電腦訪問,就也可以被同一區域網內的其他電腦訪問。 本地電腦的訪問方式: localhost 127.0.0.1 192.168.1.xxx (本地電腦的區域網 IP) xx.com (域名) 其他電腦訪問我的電腦主機

JS知識點總結:(1)判斷一個對象是否為空對象

http 通過 空數組 知識點 height ring 常見 總結 分享圖片 判斷一個對象是否為空對象,本文給出三種判斷方法: 最常見的思路,for...in...遍歷屬性,為真則為“非空數組”;否則為“空數組” 2.通過JSON自帶的.stringif

Node.js知識點整理之----基礎知識----事件處理機制及事件環機制

node 應用程序 nod eat 回調函數 clas 對象 繼續 知識 在event模塊中,定義了EventEmitter類,所有觸發事件的對象都是繼承了這個類的子類的實例對象。 addListener(event,listener) 對指定事件綁定事件處理函數 on

Node.js知識點整理之----基礎知識----console(控制臺)

輸出流 輸出結果 err 顯示 info 定向 文件中 world 字符 console.log() 用於進行標準輸出流的輸出,即在控制臺中顯示一行字符串 console.log(‘this is a message.‘) 可以將它重寫向輸出到文件中,1代表重定向標

Node.js知識點

指定 將他 其它 消息 響應時間 關系 lang 發的 alt 因為javascript引擎的關系,node.js默認是單線程,一個node.js應用無法利用多核資源。不過有第三方庫提供多線程支持,但不是無縫的。node.js是解決I/O瓶頸的(相對於傳統技術,

js知識點總結

1,promise的用法:  ​ //申明promise函式 function promFn(){ return new promise((resolve,reject)=>{ resolve(1); reject("err");

node.js學習總結

NodeJS介紹 1.概述:       Node.js是基於Chrome JavaScript執行時建立的一個平臺,實際上它是對Google Chrome V8引擎 進行了封裝,它主要用於建立快速的、可擴充套件的網路應用。Node.js採用事件驅動和非阻塞I/O模型,使

antd + node.js + mongoose小總結

node push cse define oos 新博客 mongoose exe ant 最近開發太忙,都沒時間更新博客,想通過這篇博客總結一下相關經驗,以備後續能用到: 一、antd 1.onChange of undefined問題:可能是頁面中表單取了相同的名稱,也

js事件相關知識點總結

模型 em1 detach 事件偵聽 包含 ring 分享 target 上傳 HTML頁面是怎樣實現交互的? 2017-05-22 js事件之事件流: 事件流原理圖:事件流是從window開始,最後回到window的一個過程,分為三個階段(1~5)捕獲過程、(5~6)

從項目中總結js知識點

asc 點擊 進行 clas images 打印 知識 做的 cnblogs 1. 數字字符串和數字進行比較可以得出正確結果,卻不能正確判斷是否在一個數字數組中。如以下程序: var s = ‘8‘, n = 8, arr = [1,2,8,9]; console.log

JS重要知識點總結-不完善

子函數 必須 his 代碼規範 重要 line java 全局 lba ###1、閉包 ??閉包就是能夠讀取其他函數內部變量的函數。由於在Javascript語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解成"定義在一個函數內部的函數"。所以,在本質上,

使用Node.js完成的第一個項目的實踐總結

我們 web框架 -s 關閉 arr ber 代碼格式 oot mongoose http://blog.csdn.net/yanghua_kobe/article/details/17199417 項目簡介 這是一個資產管理項目,主要的目的就是實現對資產的無紙化

【幹貨】JS相關知識點總結

名稱 javascrip 過程 進行 匿名函數 wid logs def image 一、獲取元素方法 可以使用內置對象document上的getElementById方法來獲取頁面上設置了id屬性的元素,獲取到的是一個html對象,然後將它賦值給一個變量。如下: 上面的

js學習總結----crm客戶管理系統之node編寫API接口

準備 獲取 ring length urn 使用 col asc ati 具體API代碼如下 var http = require(‘http‘), url = require(‘url‘), fs = require(‘fs‘); var server

node.js和webpack做前後端分離的總結

調用 以及 定向 roc 目錄 加載 動靜 con 腳本 1.webpack打包的特點 (打包文件到指定地點,修改原文件裏的引用路徑為打包的地點) 涉及output的path/public path/dev-server裏的public path等概念  webpack的入

使用html5中video自定義播放器必備知識點總結以及JS全屏API介紹

標簽 quest htm round internet tel ren per 全屏 一、video的js知識點: controls(控制器)、autoplay(自動播放)、loop(循環)==video默認的; 自定義播放器中一些JS中提供的方法和屬性的記錄: 1、pla

node.js總結

包管理 容量 管理 特點 以及 固定 環境 適合 大型 1.Node是一個基於Chrome V8引擎的JavaScript的運行環境。Node.js使用了一個事件驅動、非阻塞式I/O的模型,使其輕量又高效。瀏覽器也是JavaScript的運行環境。 2.瀏覽器環境下有安全性

Node.js作web服務器總結

系統資源 nod 運行 分布式部署 spa https .com 數據庫 瓶頸 1、為什麽Node.js用JS開發   首先,我們都清楚的是,同時接收數量眾多的請求是服務器非常常見的情況。而web應用程序架構(包括流量、處理器速度和內存速度)中的瓶頸在於:服務器能夠處理

HTML,CSS,JS個別知識點總結

控制 IT 排列 效果 內容 one 默認 type relative   <input>是自閉合標簽,沒有<input></input>一說,只能寫作<input/>。   <div>可以是行標簽也可以作為塊標簽

js中期知識點總結10月31日 javascript中有關this的解析題

javascript中有關this的解析題   1.作用域鏈   作用域:瀏覽器給js一個生存環境(棧)記憶體   作用域鏈:js中的關鍵字var function 都可以提前宣告和定義,提前宣告和定義,放在我們的記憶體地址(堆)記憶體中,然後js從上到下逐行執行,遇到變數就去記憶體地址查詢是