npm install -g express
express4.0以後把建立一個APP的功能分離出來爲express-generator,沒它你建立不了應用程序,須要全局安裝-gjavascript
npm install -g express-generator
在想要建立的項目目錄下打開cmd窗口,這樣就會建立以下目錄文件結構,項目就算建立完畢了。php
這個時候package.json文件中喲express,可是有沒有express-generator.html
若是不是全局安裝的上面兩個模塊就只能手動找到模塊底下的bin文件中執行。
java
express JadeWebApp //默認是jade引擎 express -e EjsWebApp //要建立ejs引擎用下面的命令
1.node_modules文件夾node
這文件夾就是在建立完項目後,cd到項目目錄執行npm install後生成的文件夾,下載了項目須要的依賴項web
2.package.json文件express
此文件是項目的配置文件(可定義應用程序名,版本,依賴項等等)npm
node_modules文件夾下的依賴項是從哪裏知道的呢?緣由就是項目根目錄下的這個package.json文件,執行npm install時會去找此文件中的dependencies,並安裝指定的依賴項編程
3.public文件夾(包含images、javascripts、stylesheets)json
這個文件夾作過Web開發的應該一看就知道,爲了存放圖片、腳本、樣式等文件的
4.routes文件夾
用於存放路由文件
5.views文件夾
存放視圖
1.app.set(name,value)
把名字爲name的項的值設爲value,用於設置參數
//設定端口 app.set('port', process.env.PORT || 3000); //設定視圖路徑主要清楚__dirname的意思就能夠了,它是node.js中的全局變量,表示取當前執行文件的路徑 app.set('views', path.join(__dirname, 'views')); //設定視圖引擎模板,還能夠設定其餘模板,後續介紹 app.set('view engine', 'jade');
2.app.use([path], function)
用這個方法來使用中間件,由於express依賴於connect,有大量的中間件,能夠經過app.use來使用;path參數能夠不填,默認爲'/'
//這一句中可能要注意一下,express.static()是處理靜態請求的, //設置了public文件,public下全部文件都會以靜態資料文件形式返回 //(如樣式、腳本、圖片素材等文件) app.use(express.static(path.join(__dirname, 'public'))); //上面代碼表示當用戶使用/訪問時,調用routes,即routes目錄下的index.js文件, //其中.js後綴省略,用/users訪問時,調用routes目錄下users.js文件 var routes = require('./routes/index'); var users = require('./routes/users'); app.use('/', routes); app.use('/users', users);
3.app.get(name)
獲取名爲name的項的值
if(app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status|| 500); res.render('error', { message: err.message, error: err }); }); } //表示若是是開發環境,處理error時會輸出堆棧信息
4.路由文件index.js
主要看下面這段代碼
router.get('/', function(req, res) { res.render('index', { title: '<h1>Express</h1>',users:[{username: 'Wilson'}, {username: 'Wilson Zhong'}, {username: 'Zhong Wei'}] });});
這段表示,router.get表示經過get請求/時,響應後面的function處理,兩個參數分別是request、response;
res.render表示調用模版引擎解析名字index的模板,傳並傳入了title和users兩個對象作爲參數;
爲何它會知道解板views目錄下的index.ejs?而不是其它目錄下的文件,或者後其它後綴名的文件?
調試nodejs目前知道的有三種方式:
a.下載VS2012的nodejs插件,用VS2012調試
b.用webForm 在app.js頁面右鍵選擇debug,這個我以爲最好用。
c.下載node-inspector模塊。
我親測過a和c,vs我就不說了,必須強大,缺點就是感受就點大材小用了,寫個nodejs而已,大動干戈啓動VS有點太卡了。因此我用的c方式,固然 了,提早還須要一個文本編輯器,nodejs的文本編輯利器當屬Sublime Text了,很爽的,完爆nodepad++和ue,並且它也能夠編輯其餘語言。
利用node-inspector調試方式以下:
①.首先全局安裝
npm install node-inspector -g
②.用node --debug-brk app.js啓動項目
③.而後新打開一個窗口,啓動 node-inspector
出現以下:
Node Inspector v0.5.0 info - socket.io started
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.
瀏覽器中調試輸入 : http://127.0.0.1:8080/debug?port=5858
④.不出意外將會在瀏覽器看到源代碼的調試界面,ps:最好用谷歌瀏覽器,不解釋。
d. 最後再推薦一個模塊supervisor,最好全局安裝npm install -g supervisor,這樣啓動程序時(如app.js)能夠 supervisor app啓動,這樣它會監視你的代碼,一旦代碼修改了就會自動重啓服務,沒必要手動,調試很方便
http://blog.csdn.net/kkkkkxiaofei/article/details/32935199
1.<%= %>
這個標籤在接到收到title: '<h1>Express</h1>'時,從顯示效果來看,他直接輸出HTML標籤到頁面上,輸出的是轉義後的變量值
2.<%- %>
而這個標籤,從顯示效果上看,他沒有直接輸出HTML代碼到頁面上,輸出的是沒有轉義後的變量值
3.<% %>
而這個標籤,從顯示上看,他循環了出來參數中的值,標籤中是javascript邏輯代碼,注意括號的開閉合
所謂的中間件就是相似於過濾器,面向切面編程,在執行一些東西以前要先執行這些東西。
http://www.yuansir-web.com/2013/06/25/%E7%90%86%E8%A7%A3node-js%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%BB%A5%E5%8F%8Aconnect-%E6%A8%A1%E5%9D%97/
http://www.infoq.com/cn/articles/nodejs-8-connect-module-part-2/
一、本博客中的文章摘自網上的衆多博客,僅做爲本身知識的補充和整理,並分享給其餘須要的coder,不會用於商用
二、由於不少博客的地址已經記不清楚了,因此不會在這裏標明出處
OK,這樣就算入門了吧,基礎的東西推薦你們去匯智網上去學習。