為什么要自述?嗯,先把一些東西說一說吧,首先,我不是什么大神,只是一個剛剛脫離了單身(畢業于2013年,脫于2014年2月8日)的苦B而已,對于nodejs的研究,加起來也不過兩周而已,以前是搞java的(現在也是,隨便搞搞而已),出于對node的好奇,花了半天時間研究了一下,然后...就有了然后....。那么為什么不是Oideas的demo相關blog,而是OMinds的blog呢?For,青出于藍勝于藍....更進一步而已。
另,本站的學習有很多地方參考了@nswbmw大神的blog,有想搭建blog的同學可參見TA的wiki
另,如果blog寫的不好,請隨便噴。
本站的環境
Node.js : 0.10.25
Express : 3.2.6
Mongodb : 2.4.9
開發工具
nodeeclipse
環境安裝(如果環境已搭建,請跳過步驟) 以下皆在windows平臺
安裝nodejs,到Node官網下載相應的msi(我的是64bit,下載的是Windows Installer (.msi) 64-bit),點擊安裝,猛按next.檢驗環境是否安裝成功 在cmd下輸入node -v 顯示相關的版本
安裝express ,cmd下,輸入:npm install -g express 等待下載即可。
安裝mongodb ,到mongo官網下載,相應的包解壓即可。
eclipse下安裝node開發插件,可到http://www.nodeclipse.org/查看最新的update site. 目前是:http://dl.bintray.com/nodeclipse/nodeclipse/0.10.0/ ,那么打開eclipse help->install new software 填寫update site地址即可,不必安裝所有東西,一般core要安裝,其他的tools選擇安裝。
打開eclipse,新建 Node.js Express Project .名稱為OMinds,Template Engine 選擇ejs (其他模板自己研究),至此project已經ok了,在cmd下切換到你的項目目錄輸入 node app.js,如圖:
打開瀏覽器:http://localhost:3000/可以看到如下圖:
(注:另一種建項目的方法,直接新建項目名,cmd切換到項目的同級目錄,如:項目為d:\OMinds,那么cmd切換到d盤即可,然后鍵入:express -e OMinds 安裝成功后cd OMinds :npm install,兩種方法均可)。
4.工程目錄

(該部分主要借鑒nswbmw大神的講解)
app.js:啟動文件,或者說入口文件
package.json:存儲著工程的信息及模塊依賴,當在 dependencies 中添加依賴的模塊時,運行 npm install,npm 會檢查當前目錄下的 package.json,并自動安裝所有指定的模塊
node_modules:存放 package.json 中安裝的模塊,當你在 package.json 添加依賴的模塊并安裝后,存放在這個文件夾下
public:存放 p_w_picpath、css、js 等文件
routes:存放路由文件
views:存放視圖文件或者說模版文件
打開 app.js,內容如下圖:
app.set('port', process.env.PORT || 3000):設置端口為 process.env.PORT 或 3000。
app.set('views', __dirname + '/views'):設置 views 文件夾為存放視圖文件的目錄,即存放模板文件的地方,dirname 為全局變量,存儲當前正在執行的腳本所在的目錄。
app.set('view engine', 'ejs'):設置視圖模版引擎為 ejs。
app.use(express.favicon()):connect 內建的中間件,使用默認的 favicon 圖標,如果想使用自己的圖標,需改為app.use(express.favicon(dirname + '/public/p_w_picpaths/favicon.ico')); 這里我們把自定義的 favicon.ico 放到了 /public/p_w_picpaths 文件夾下。
app.use(express.logger('dev')):connect 內建的中間件,在開發環境下使用,在終端顯示簡單的日志,比如在啟動 app.js 后訪問 localhost:3000,終端會輸出:
Express server listening on port 3000 GET / 200 21ms - 206b GET /stylesheets/style.css 304 4ms>
假如你去掉這一行代碼,不管你怎么刷新網頁,終端都只有一行 Express server listening on port 3000。
app.use(express.bodyParser()):connect 內建的中間件,用來解析請求體,支持 application/json, application/x-www-form-urlencoded, 和 multipart/form-data。
app.use(express.methodOverride()):connect 內建的中間件,可以協助處理 POST 請求,偽裝 PUT、DELETE 和其他 HTTP 方法。
app.use(app.router):調用路由解析的規則。
app.use(express.static(path.join(__dirname, 'public'))):connect 內建的中間件,設置根目錄下的 public 文件夾為存放 p_w_picpath、css、js 等靜態文件的目錄。
if ('development' == app.get('env')) { app.use(express.errorHandler());}開發環境下的錯誤處理,輸出錯誤信息。
app.get('/', routes.index):路由控制器,如果用戶訪問 / (主頁),則由 routes.index 來處理,routes/index.js 內容如下:
exports.index = function(req, res){ res.render('index', { title: 'Express' });};通過 exports.index 導出 index 函數接口,app.get('/', routes.index) 相當于:
app.get('/', function(req, res){ res.render('index', { title: 'Express' });});以上的內容介紹均來自nswbmw大神,為什么我直接拿過來了呢,因為TA講的卻是很好,而且這一部分還是很有用的。 那么現在,app.js文件中刪除:
app.get('/', routes.index);app.get('/users', user.list);添加:routes(app);
并在index.js中修改為如下:
module.exports = function(app) { app.get('/', function (req, res) { res.render('index', { title: 'Express' }); });};再次在cmd下啟動服務,打開瀏覽器看一下,你會發現效果是一樣的。
為什么要刪掉上面兩行代碼呢,app.get('/users', user.list);//路由控制每加一個路由控制就要接一句app.get()或者是app.post(),當路由很多時,app.js里面的代碼就會很多,不便于維護和修改。所以換一種寫法,在index.js里面寫路由控制。
以上是本章的主要內容,下一章開始建我們的OMinds。
源碼已上傳到git,點擊這里下載
第一次,blog寫的不太好,后面會改進。。。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。