Time of Update: 2017-01-18
前言神奇的node.js為我們JavaScript提供了在後端啟動並執行環境,而它的包管理器npm(node package
Time of Update: 2017-01-18
實現思路將data和end事件的回呼函數直接放在伺服器中,在data事件回調中收集所有的POST資料,當接收到所有資料,觸發end事件後,其回呼函數調用請求路由,並將資料傳遞給它,然後,請求路由再將該資料傳遞給請求處理常式。實現步驟第一步我們設定了接收資料的編碼格式為UTF-8,第二步註冊了“data”事件的監聽器,用於收集每次接收到的新資料區塊,並將其賦值給postData
Time of Update: 2017-01-18
鏡像使用方法(三種辦法任意一種都能解決問題,建議使用第三種,將配置寫死,下次用的時候配置還在):1.通過config命令npm config set registry https://registry.npm.taobao.org npm info underscore (如果上面配置正確這個命令會有字串response)2.命令列指定npm --registry https://registry.npm.taobao.org info underscore 3.編輯 ~/.npmrc
Time of Update: 2017-01-18
想要在NodeJs中使用jQuery?首先,我們得安裝jquery, npm install jquery 。安裝後的版本是 3.1.0接著,第一感覺我們會使用 var $ = require('jquery') 。將以下代碼儲存為app.jsvar $ = require('jquery')$("body").append("<div>TEST</div>");console.log($("body").html());運行 node app.js
Time of Update: 2017-01-18
這些日子跑去學了一下OC,但是還沒有學成。離轉行的時間還有很長,順便回顧一下node的知識。每種語言來來去去的人很多,但我就離不開node。我並不是使用它開發,只是使用js相對多一些,因此還是研究node比較好,stream在node的地位是很高的。閑時也來看看這個內容,在node的路上,我還是新手。今天下載了nodeschool的課程看,其中有一個例子。(我修改了一點點)var concat = require('concat-stream');var http =
Time of Update: 2017-01-18
I/O庫為檔案操作提供了兩種不同的模型,簡單模型和完整模型。簡單模型假設一個當前輸入檔案和一個當前輸出檔案,他的I/O操作均作用於這些檔案。完整模型則使用顯式的檔案控制代碼,並將所有的操作定義為檔案控制代碼上的方法。 1. 簡單模型:
Time of Update: 2017-01-18
Lua採用了基於垃圾收集的記憶體管理機制,因此對於程式員來說,在很多時候記憶體問題都將不再困擾他們。然而任何垃圾收集器都不是萬能的,在有些特殊情況下,垃圾收集器是無法準確的判斷是否應該將當前對象清理。這樣就極有可能導致很多垃圾對象無法被釋放。為瞭解決這一問題,就需要Lua的開發人員予以一定程度上的配合。比如,當某個table對象被存放在容器中,而容器的外部不再有任何變數引用該對象,對於這樣的對象,Lua的垃圾收集器是不會清理的,因為容器物件仍然引用著他。如果此時針對該容器的應用僅限於尋找,而不是
Time of Update: 2017-01-18
Lua中的table就是一種對象,但是如果直接使用仍然會存在大量的問題,見如下代碼:複製代碼 代碼如下: Account = {balance = 0} function Account.withdraw(v) Account.balance = Account.balance -
Time of Update: 2017-01-18
在Node.js中,當某個回呼函數發生了錯誤,整個進程都會崩潰,影響後面的代碼執行。Node.js這樣處理,是因為在發生未被捕獲的錯誤時,進程的狀態就不確定。之後也就無法正常工作了。如果錯誤始終不處理的話,就回一直拋出意料之外的錯誤,這樣不利於調試。防止錯誤導致的進程阻塞的方法主要有如下兩種:一. try-catchtry-catch允許進行異常捕獲,並讓代碼繼續執行下去:例如:當函數拋出錯誤時,代碼就停止執行了:(function() {var a =
Time of Update: 2017-01-18
一、基礎知識:1. 第一個程式和函數: 在目前這個學習階段,運行Lua程式最好的方式就是通過Lua內建的解譯器程式,如: 複製代碼 代碼如下: /> lua > print("Hello World") Hello World
Time of Update: 2017-01-18
一、nodejs應用普通部署方式介紹終於要把nodejs的應用程式部署上線了, 把原始碼通過git複製到目錄下面複製代碼 代碼如下:/root/deploy/movie然後搞命令:複製代碼 代碼如下:~ cd /root/deploy/movienode ./app.js上面的方式,nodejs程式會在當前的console介面中運行,一旦console結束,應用也會停止。我們改一下命令,讓程式在後台運行複製代碼 代碼如下:~ node ./app.js &[1] 21333[2013-06-21
Time of Update: 2017-01-18
這幾天系統地學習了一下Lua這個指令碼語言,Lua指令碼是一個很輕量級的指令碼,也是號稱效能最高的指令碼,用在很多需要效能的地方,比如:遊戲指令碼,nginx,wireshark的指令碼,當你把他的源碼下下來編譯後,你會發現解譯器居然不到200k,這是多麼地變態啊(/bin/sh都要1M,MacOS平台),而且能和C語言非常好的互動。我很好奇得瀏覽了一下Lua解譯器的源碼,這可能是我看過最乾淨的C的源碼了。我不想寫一篇大而全的語言手冊,一方面是因為已經有了(見本文後面的連結),重要的原因是,因為
Time of Update: 2017-01-18
這次要介紹的內容比較少,就一個——弱引用table1.無法超越人類智慧的智能——自動記憶體管理的缺陷我們都知道,Lua是具備自動記憶體管理的,好吧,也許有些朋友不知道。我們只管建立對象,無須刪除對象(當然,對於不要的對象你需要設定一下nil值),Lua會自動刪除那些被認為是垃圾的對象。問題就出現在,什麼對象才是垃圾對象,有些時候,我們很清楚某個對象是垃圾,但是,Lua卻無法發現。 比如這樣一個例子:複製代碼 代碼如下:t = {};
Time of Update: 2017-01-18
在Lua中的多重繼承和私密性可能用得比較少,也可能只是我個人用得比較少。本來想偷懶不寫這文章的,因為我今天剛買了個漂移板,連起步都還沒學會啊,想多學一會。咳咳,本著堅持不懈、負責到底的態度,我還是決定隨便寫幾句~(小若:隨便寫幾句是幾噸意思啊?!)1.多重繼承之在多個類中尋找一個欄位我發現這些高(shen)智(jing)商(bing)人群真的很厲害,這種技巧都能想到,很佩服。其實多重繼承沒什麼特別的,除非兩個將要被繼承的類有相同的函數名和屬性,否則,處理起來很簡單。 無非就是在多個ta
Time of Update: 2017-01-18
一、前言在構建高並發的Web應用時,除了應用程式層要採取負載平衡方案外,資料庫也要支援高可用和高並發性。使用較多的資料庫最佳化方案是:通過主從複製(Master-Slave)的方式來同步資料,再通過讀寫分離(MySQL-Proxy)來提升資料庫的並發負載能力。1. replication選項與讀寫分離Sequelize
Time of Update: 2017-01-18
一. Base64編碼由來為什麼會有Base64編碼呢?因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ASCII碼的控制字元就 不能通過郵件傳送。這樣用途就受到了很大的限制,比如圖片二進位流的每個位元組不可能全部是可見字元,所以就傳送不了。最好的方法就是在不改變傳統協議的情 況下,做一種擴充方案來支援二進位檔案的傳送。把不可列印的字元也能用可列印字元來表示,問題就解決了。Base64編碼應運而生,Base64就是一種 基於64個可列印字元來表示位元據的表示方法。
Time of Update: 2017-01-18
需要進行錯誤處理錯誤處理是必要的,因為真實世界中的操作通常需要使用複雜的操作,包括檔案操作,資料庫事務和web服務調用。沒人關心錯誤的業務,涉及保密資訊或金錢交易時造成大的損失。在任何編程,總是有錯誤處理的要求。錯誤可以是兩種類型,其中包括, 語法錯誤 執行階段錯誤語法錯誤因使用不當造成的各種程式組件,如運算子和運算式中出現語法錯誤。一個簡單的例子中的語法錯誤如下所示。複製代碼 代碼如下:a ==
Time of Update: 2017-01-18
一、首先需要瞭解的命令 npm install === yarn —— install 安裝是預設行為。 npm install taco --save === yarn add taco —— taco 包立即被儲存到 package.json 中。 npm uninstall taco --save === yarn remove taco在
Time of Update: 2017-01-18
元表是一個表,有助於改變它串連到一個密鑰集和相關的元方法的協助下表的行為。這些元方法是強大的lua功能,如: 更改/添加功能,以運算子表 查看metatables當鑰匙不在使用__index元表中的表可用。有跡象表明,在處理metatables其中包括使用了兩種重要的方法, setmetatable(table,metatable):
Time of Update: 2017-01-18
前言一般來說,很少人會考慮如何處理應用產生的錯誤的策略,調試的過程中,簡單地利用console.log(‘error')定位錯誤,基本夠用了,通過留下這些調試資訊,能夠為我們以後的調試過程中升了不少時間,提高了維護性。所以錯誤提示非常重要。同時,也會帶來一些比較糟糕用法。最近的項目裡就用到了自訂錯誤類型,覺得有必要深入瞭解一下,所以就寫了這篇文章,方便自己和有需要的大家在需要的時候查閱。Subclassing Error首先我們可以定義一個 Error 的子類。通過 Object.create