注:本文轉自:許雪里 的 《nodejs環境 + 入門 + 博客搭建》
一:知識點介紹
NodeJS:NodeJS是一個使用了Google高性能V8 引擎 的服務器端JavaScript實現。它提供了一個(幾乎)完全非阻塞I/O棧,與JavaScript提供的閉包和匿名函數相結合,使之成為編寫高吞吐 量網絡服務程序的優秀平台。
NPM:全稱是Node Package Manager,是一個NodeJS定制的包管理和分發工具,如node-mysql,已經成為了非官方的發布Node模塊(包)的標准。
(npm類似maven,package.json類似pom.xml文件)
mongodb:非關系數據庫(nosql),缺點就是不適合數據一致性要求高的比如金融方面的開發。但是優點就快。
nodejs 本身不支持熱更新,因為所有的js代碼都被編譯和緩存進內存
node和mongodb組合起來特別適合一個應用場景——速度快,處理量大的情況。
nodejs官網:https://nodejs.org/en/download/
nodejs社區:http://www.cnodejs.org
nodejs菜鳥教程:http://www.w3cschool.cc/nodejs/nodejs-tutorial.html
hexo博客:https://hexo.io/
ghost博客:https://ghost.org/
windows + node,環境搭建
1、nodejs安裝 (具體請參考:http://www.runoob.com/nodejs/nodejs-install-setup.html)
》下載node-v4.3.1-x64.msi,
開始安裝nodejs,選擇安裝路徑;安裝包含:
安裝nodejs至指定目錄:
步驟 1 : 雙擊下載后的安裝包 v0.10.26,如下所示:
步驟 2 : 點擊以上的Run(運行),將出現如下界面:
步驟 3 : 勾選接受協議選項,點擊 next(下一步) 按鈕 :
步驟 4 : Node.js默認安裝目錄為 "C:\Program Files\nodejs\" , 你可以修改目錄,並點擊 next(下一步):
步驟 5 : 點擊樹形圖標來選擇你需要的安裝模式 , 然后點擊下一步 next(下一步)
步驟 6 :點擊 Install(安裝) 開始安裝Node.js。你也可以點擊 Back(返回)來修改先前的配置。 然后並點擊 next(下一步):
安裝過程:
點擊 Finish(完成)按鈕退出安裝向導。
檢測PATH環境變量是否配置了Node.js,點擊開始=》運行=》輸入"cmd" => 輸入命令"path",輸出如下結果:
配置node環境變量:將node安裝目錄添加進PATH環境變量【環境變量作用:系統命令的搜索目錄】
集成安裝NPM:將npm安裝目錄添加進PATH環境變量(全局安裝的模塊將安裝在其中,公用環境變量,但公用時新增模塊命令需要重啟機器)
》校驗:node -v和npm -v
2、npm安裝 (參考教程:http://www.runoob.com/nodejs/nodejs-npm.html)
新版的nodejs已經集成了npm
NPM用法:
# npm install jade -g // Jade 是一個高性能的模板引擎,它深受 Haml 影響,它是用 JavaScript 實現的,並且可以供 Node 使用。
# npm install mysql -g // 用於鏈接mysql
# npm install express -g // Express 是一個基於 Node.js 平台的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。
3、安裝express
# npm install express -gd
# npm install express-generator -gd
參數說明如下:
# npm uninstall express -g // 卸載
# npm install express -gd // 選項-g表示全局安裝,目標模塊將會被安裝到NODE_PATH的lib里面(C:\Users\Administrator\AppData\Roaming\npm)。-d選項表示一並安裝依賴模塊。沒有-g選項的話會在當前目錄(通常是項目目錄)建立一個node_modules目錄。
# npm install -g express@3.5.0 // 安裝指定版本
# npm install express-generator -gd // express 4.0之后將命令工具分出來了 故還需安裝express-generator
重啟機器
# express -V // 安裝成功后,命令行會提示 npm info ok,查看版本,注意express -V中的V要大寫,不然很多版本中會不識別
4、使用express 創建HelloWorld
使用express創建一個工程,新版本中命令發生了一些改變, 創建好project之后還需要用npm進行添加依賴和啟動:
# express helloworld
# cd helloworld
# npm install // 如若已有項目,可以從這一步開始
# npm start
然后新創建的helloworld就已經運行在3000端口上
訪問 http://localhost:3000/ 就看到熟悉的頁面了
express項目標准目錄結構:
bin/
node_modules/ # 保存node.js的module擴展文件,如模板、數據庫接口,可以根據package.json生成
public/ # 靜態資源
routes/ # 存放了MVC概念中controller的處理部分,路由信息在app.js中予以定義,類似springmvc的controller
views/ # 存放了MVC概念中view的部分,類似j2ee中的freemarker
app.js # Express應用程序的入口文件,存放的Express項目中最基本的配置信息,類似netty項目中main啟動方法
package.json # 描述npm包的信息,用於構建npm程序,和npm平台關聯,類似maven的pom.xml文件
Tips:由於Express只是一個輕量級的Web框架,多數功能只是圍繞HTTP協議中常用部分進行了封裝,其中沒有內置ORM,所以沒有MVC概念中Model的部分,在實際項目中必須通過module來進行擴展。
centos + nodejs,源碼方式安裝
1. 安裝依賴包
# yum -y install gcc gcc-c++ openssl-devel
2. 下載源碼包
# wget https://nodejs.org/dist/v4.3.1/node-v4.3.1.tar.gz
# tar -zvxf node-v4.3.1.tar.gz
# cd node-v4.3.1
3. 配置、編譯、安裝
# ./configure --prefix=/usr/local/node (centos6.5的gcc版本低於node4要求的4.8,升級centos7或者換二進制版本安裝)
# make && make install
4. 配置nodejs環境
# vim /etc/profile
------
#set nodejs env
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
------
# source /etc/profile #重啟生效
5. 測試是否安裝成功
# node -v
# npm -v
centos + nodejs,二進制文件方式安裝(更綠色,推薦)
1. 二進制文件安裝
# yum -y install xz
# wget https://nodejs.org/dist/v4.3.1/node-v4.3.1-linux-x64.tar.xz
# tar -xvf node-v4.3.1-linux-x64.tar.xz
# mv node-v4.3.1-linux-x64 /usr/local/node
# cd /usr/local/node
# cd bin
# ./node -v
2. 配置nodejs環境
# vim /etc/profile
------
#set nodejs env
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
------
# source /etc/profile #重啟生效
3. 測試是否安裝成功
# node -v
# npm -v
2、npm安裝
同windows
3、安裝express
同windows
4、使用express 創建HelloWorld
同windows
5、node后台運行(利用nohup)(node的forever命令啟動也很方便)
# nohup node index.js > myLog.log 2>&1 &
# nohup npm start > myLog.log 2>&1 &
# ps -ef|grep node
# kill -9 2179
// halt -- reboot
npm國內鏡像站,以及使用方法:
淘寶NPM鏡像站: http://npm.taobao.org/
永久使用鏡像命令: # npm config set registry https://registry.npm.taobao.org
臨時使用鏡像命令: # npm --registry "https://registry.npm.taobao.org" install 某一個包
源碼實例
示例helloworld:
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.write("Hello World!");
response.end();
}).listen(8080);
console.log("Server running at http://localhost:8080/");
打開命令行,轉到當前文件所存放的路徑下,運行 node helloworld.js命令即可;
如果一切正常,可以看到命令行輸出:Server running at http://localhost:8080/;
同時,在瀏覽器輸入http://localhost:8080/,可以看到一個寫着helloworld的網頁。
聊天室示例:
....
hexo博客搭建:適合小型個人博客
原理》博客數據存儲在md文件中;使用hexo命令新建md文件,編輯,發布,程序自動加載md文件生成博客站點;
hexo安裝》詳細教程查看官方文檔,簡單安裝步驟如下
# npm install hexo-cli -g (已經通過npm集成為通用包)
# hexo init blog
# cd blog
# npm install
# hexo generate (靜態化整站)
# hexo server (啟動server)
# hexo deploy (配置git后,可同步到github)
主題安裝》例如next主題
1.下載主題包解壓: 前往github下載release主題包hexo-theme-next-0.4.5.2,解壓在themes目錄下
2. 修改項目配置:修改根目錄下配置文件 _config.yml:找到默認主題【theme: landscape】修改為【theme: hexo-theme-next-0.4.5.2】即可;
3. 修改主題配置:按照next在github給定的主題文檔(http://theme-next.iissnan.com/five-minutes-setup.html)自行定制;
ghost博客搭建:適合小型個人博客(依賴太多,ghost-0.7.8版本安裝后體積達到200M+,且需要FQ或者切換國內鏡像站才可以安裝)
原理》博客數據存儲在sqlite3數據庫文件中(可修改為mysql);圖片存儲在本地文件夾中;編輯器采用markdown;
安裝》
1. 官網下載源碼包
2. 安裝:# npm install --production
3. 啟動:(詳細安裝查看官網文檔 http://support.ghost.org/installation/)
本地啟動:# npm start
服務器啟動# npm start --production
提示:Error: Cannot find module 'mime-db';解決:臨時使用鏡像命令,按照提示一個一個的安裝牆內無妨訪問的npm包
Ghost管理使用》
1. 首次進入,注冊管理員:訪問 “http://localhost:2368/ghost”
2. 博客Settings一般設置中,可修改博客標題,描述,Logo,每頁pagesize,主題等;
3. 在User設置可以對作者進行相應修改;
4. 發布文章使用Markdown語法,基本語法比較簡單,特別是當輸入" ![]() "時,編輯器會出現圖片上傳框,可以拖動圖片上傳;
5. 給Ghost博客設置SMTP只需要編輯:vim config.js,在production下的Mail中加入SMTP信息即可。
6. Ghost博客后台去掉Google Fonts需要進入到:core/server/views/default.hbs和core/server/views/user-error.hbs,把里面的fonts.googleapis.com鏈接刪除了。
7. 默認的主題去掉Google Fonts需要進入到:content/themes/casper/default.hbs,把里面的fonts.googleapis.com鏈接刪除了。
8. Ghost博客備份與恢復。Ghost 博客的所有文章內容都是存儲在 sqlite3 數據庫中的,其位置是 /content/data/ghost.db。另外,所有上傳的圖片都放在了 /content/images/ 目錄下。
9. Ghost博客自帶了一個備份與恢復的頁面,地址是:域名/ghost/debug/。 點擊 Export 按鈕就可以將博客內容導出為 .json 文件,還有一個導入工具 Import ,可以將 .json 格式的備份內容導入Ghost 系統。 最后一個紅色按鈕 Delete all content 是用來刪除所有內容(即清空數據庫)。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------