溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【Nodejs開發(fā)】第1章 述與環(huán)境搭建

發(fā)布時間:2020-05-25 02:14:44 來源:網(wǎng)絡(luò) 閱讀:459 作者:joveth 欄目:MongoDB數(shù)據(jù)庫


請關(guān)注我的小站:http://oideas.herokuapp.com/

1.自述

為什么要自述?嗯,先把一些東西說一說吧,首先,我不是什么大神,只是一個剛剛脫離了單身(畢業(yè)于2013年,脫于2014年2月8日)的苦B而已,對于nodejs的研究,加起來也不過兩周而已,以前是搞java的(現(xiàn)在也是,隨便搞搞而已),出于對node的好奇,花了半天時間研究了一下,然后...就有了然后....。那么為什么不是Oideas的demo相關(guān)blog,而是OMinds的blog呢?For,青出于藍(lán)勝于藍(lán)....更進(jìn)一步而已。

另,本站的學(xué)習(xí)有很多地方參考了@nswbmw大神的blog,有想搭建blog的同學(xué)可參見TA的wiki

另,如果blog寫的不好,請隨便噴。

2.環(huán)境搭建

本站的環(huán)境
Node.js : 0.10.25
Express : 3.2.6
Mongodb : 2.4.9
開發(fā)工具
nodeeclipse
環(huán)境安裝(如果環(huán)境已搭建,請?zhí)^步驟) 以下皆在windows平臺

  • 安裝nodejs,到Node官網(wǎng)下載相應(yīng)的msi(我的是64bit,下載的是Windows Installer (.msi) 64-bit),點(diǎn)擊安裝,猛按next.檢驗(yàn)環(huán)境是否安裝成功 在cmd下輸入node -v 顯示相關(guān)的版本

  • 安裝express ,cmd下,輸入:npm install -g express 等待下載即可。

  • 安裝mongodb ,到mongo官網(wǎng)下載,相應(yīng)的包解壓即可。

  • eclipse下安裝node開發(fā)插件,可到http://www.nodeclipse.org/查看最新的update site. 目前是:http://dl.bintray.com/nodeclipse/nodeclipse/0.10.0/ ,那么打開eclipse help->install new software 填寫update site地址即可,不必安裝所有東西,一般core要安裝,其他的tools選擇安裝。

3.新建工程

打開eclipse,新建 Node.js Express Project .名稱為OMinds,Template Engine 選擇ejs (其他模板自己研究),至此project已經(jīng)ok了,在cmd下切換到你的項目目錄輸入 node app.js,如圖:
【Nodejs開發(fā)】第1章 述與環(huán)境搭建
打開瀏覽器:http://localhost:3000/可以看到如下圖:
【Nodejs開發(fā)】第1章 述與環(huán)境搭建

(注:另一種建項目的方法,直接新建項目名,cmd切換到項目的同級目錄,如:項目為d:\OMinds,那么cmd切換到d盤即可,然后鍵入:express -e OMinds 安裝成功后cd OMinds :npm install,兩種方法均可)。


4.工程目錄


【Nodejs開發(fā)】第1章 述與環(huán)境搭建
(該部分主要借鑒nswbmw大神的講解)

app.js:啟動文件,或者說入口文件
package.json:存儲著工程的信息及模塊依賴,當(dāng)在 dependencies 中添加依賴的模塊時,運(yùn)行 npm install,npm 會檢查當(dāng)前目錄下的 package.json,并自動安裝所有指定的模塊
node_modules:存放 package.json 中安裝的模塊,當(dāng)你在 package.json 添加依賴的模塊并安裝后,存放在這個文件夾下
public:存放 p_w_picpath、css、js 等文件
routes:存放路由文件
views:存放視圖文件或者說模版文件

打開 app.js,內(nèi)容如下圖:
【Nodejs開發(fā)】第1章 述與環(huán)境搭建
app.set('port', process.env.PORT || 3000):設(shè)置端口為 process.env.PORT 或 3000。
app.set('views', __dirname + '/views'):設(shè)置 views 文件夾為存放視圖文件的目錄,即存放模板文件的地方,dirname 為全局變量,存儲當(dāng)前正在執(zhí)行的腳本所在的目錄。
app.set('view engine', 'ejs'):設(shè)置視圖模版引擎為 ejs。
app.use(express.favicon()):connect 內(nèi)建的中間件,使用默認(rèn)的 favicon 圖標(biāo),如果想使用自己的圖標(biāo),需改為app.use(express.favicon(dirname + '/public/p_w_picpaths/favicon.ico')); 這里我們把自定義的 favicon.ico 放到了 /public/p_w_picpaths 文件夾下。
app.use(express.logger('dev')):connect 內(nèi)建的中間件,在開發(fā)環(huán)境下使用,在終端顯示簡單的日志,比如在啟動 app.js 后訪問 localhost:3000,終端會輸出:


Express server listening on port 3000
GET / 200 21ms - 206b
GET /stylesheets/style.css 304 4ms>


假如你去掉這一行代碼,不管你怎么刷新網(wǎng)頁,終端都只有一行 Express server listening on port 3000。

app.use(express.bodyParser()):connect 內(nèi)建的中間件,用來解析請求體,支持 application/json, application/x-www-form-urlencoded, 和 multipart/form-data。

app.use(express.methodOverride()):connect 內(nèi)建的中間件,可以協(xié)助處理 POST 請求,偽裝 PUT、DELETE 和其他 HTTP 方法。
app.use(app.router):調(diào)用路由解析的規(guī)則。
app.use(express.static(path.join(__dirname, 'public'))):connect 內(nèi)建的中間件,設(shè)置根目錄下的 public 文件夾為存放 p_w_picpath、css、js 等靜態(tài)文件的目錄。


if ('development' == app.get('env')) {  app.use(express.errorHandler());}


開發(fā)環(huán)境下的錯誤處理,輸出錯誤信息。
app.get('/', routes.index):路由控制器,如果用戶訪問 / (主頁),則由 routes.index 來處理,routes/index.js 內(nèi)容如下:



exports.index = function(req, res){  res.render('index', { title: 'Express' });};

通過 exports.index 導(dǎo)出 index 函數(shù)接口,app.get('/', routes.index) 相當(dāng)于:



app.get('/', function(req, res){  res.render('index', { title: 'Express' });});

以上的內(nèi)容介紹均來自nswbmw大神,為什么我直接拿過來了呢,因?yàn)門A講的卻是很好,而且這一部分還是很有用的。 那么現(xiàn)在,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下啟動服務(wù),打開瀏覽器看一下,你會發(fā)現(xiàn)效果是一樣的。
為什么要刪掉上面兩行代碼呢,app.get('/users', user.list);//路由控制每加一個路由控制就要接一句app.get()或者是app.post(),當(dāng)路由很多時,app.js里面的代碼就會很多,不便于維護(hù)和修改。所以換一種寫法,在index.js里面寫路由控制。
以上是本章的主要內(nèi)容,下一章開始建我們的OMinds。

源碼已上傳到git,點(diǎn)擊這里下載

ideas-ominds交流群:158325682,有想要一起做的,或者有什么不懂的都可以找我哦。

第一次,blog寫的不太好,后面會改進(jìn)。。。。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI