摘要:搭建一個應用,少不了一個主文件,不少人根據各自喜好來定義名字,像。總結一個完整的由個部分組成,大家只要把主文件當成白雪公主,把個組成部分當作七個小矮人就行了,哈哈,這個記法真天才。
前言
Node妹子的問世,著實讓我們前端攻城獅興奮了一把,尤其本屌聽說Javascript可以寫服務端后,興奮的像是看到了二次元蘿莉的胖子...(●"?"●)。呃哼...YY先到這里,原諒本屌是個二次元蘿莉控。
正文想談好對象,并不是要new一個就行了,必須要先認識人家后慢慢的才可以上手,然后慢慢推上床<( ̄︶ ̄)>。
想想自己搞前端開發的時候,為了盡力讓頁面在瀏覽器君體內完美展現,也是做了不少功課,其中最不可少的就是要認識認識。這玩意是什么,能干什么。
對于寄宿在瀏覽器中的Javascript就不多說了,之前發過一篇簡單的文章《前端Javascript與Nodejs的異同》
,大概描述了下Nodejs與前端javascript的異同,如果你好好看的話肯定能明白的。
index.js
搭建一個Node應用,少不了一個主文件,不少人根據各自喜好來定義名字,像app.js、main.js。
這里尊重npm init時的默認配置為index.js,其實個人還是挺喜歡app.js這個命名的。
為了方便,本屌也使用了express這個高大上的框架。
好!!!下面,我們來看看index.js里應該有的內容。
//引用依賴模塊 var express = require("express"); var path = require("path"); var favicon = require("serve-favicon"); var logger = require("morgan"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var routes = require("./routes/index"); var users = require("./routes/users"); var app = express(); // 視圖引擎設置 app.set("views", path.join(__dirname, "views")); app.set("view engine", "jade"); //中間件 app.use(favicon(path.join(__dirname, "public", "favicon.ico"))); app.use(logger("dev")); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); //路由 app.use("/", routes); app.use("/users", users); //遇到錯誤時的中間件 app.use(function(req, res, next) { var err = new Error("Not Found"); err.status = 404; next(err); }); 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 }); }); } app.use(function(err, req, res, next) { res.status(err.status || 500); res.render("error", { message: err.message, error: {} }); }); //拋出 提供給www.js 并通過www.js來開啟服務 module.exports = app;
以上代碼是通過express腳手架生成的一個比較標準的內容,個人在里面做了簡單的注釋。然后我想說,請童鞋們不要急著看每一行代碼是什么意思,因為如果你熟悉nodejs不用看也知道寫的什么,如果你不了解,也暫時不要去了解,我們看一本新書的時候,一定要先看一下它的目錄才能大概知道書的內容。
現在我們來整理一下這個index.js的大概目錄,不難發現,它有幾個重要的部分組成:
引入依賴模塊
設置相關配置
定義中間件
定義路由
開啟服務
幾乎所有的入口文件都少不了這幾個組成部分,而且順序也是按照上面列表從上到下依次編寫。這里需要說的是中間件這一部的編寫,大部分中間件是寫在路由之前,但是有些中間件應該在路由之后執行,比如處理錯誤的中間件,一般放在路由后面執行。
其實一個完整的入口文件并不是只有上面說的那么多,它還有一些可選項來構成完整的index.js。為了方便比較,就直接列舉出來吧:
引入依賴模塊
設置相關配置
連接數據庫(可選)
定義中間件
定義路由
開啟服務
在多核系統上啟動cluster多核處理模塊(可選)
可以看出,添加了連接數據庫和多核處理兩個可選組成部分。
總結一個完整的index.js由7個部分組成,大家只要把主文件當成白雪公主,把7個組成部分當作七個小矮人就行了,哈哈,這個記法真天才。
不過話說回來,并不是每個應用都必須7個大將全上場,可能是5個,可能是6個,也可能是7個,大家在組織代碼的時候根據應用和硬件需求來自定義構建即可。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/87869.html
摘要:用本屌的話來說,沒有妹子也活不下去了。所以,本屌親自著手畫了一幅宇宙僅有的一張圖我相信聰明的人一下就能看懂了,畢竟本屌的畫拿出去賣也能值個毛錢。這樣整個應用就開啟啦本屌那幅神圖中的大箭頭也可以順暢的捅進去了。。 前言 經過之前的文章《淺談Nodejs應用的主文件index.js的組成部分》,終于認識了Node妹子的容顏,然后好像上呀<( ̄︶ ̄)>。呦西~這次讓本屌在她胴體上游走一番,想...
摘要:前后端的界限是按照瀏覽器和服務器的劃分。前后端彼此互不關聯。關于作者本文部分圖片段落參考文章實踐中的前后端分離。淘寶前后端分離實踐本文源碼詳見服務端代碼。 一、起源 (故事純屬虛構,如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個創業的想法,于是乎開始了自己的創業之夢,但是人手不足啊,于是乎所有角色老子一個人全包了: Roles: PM, DBA, RD, FED, Des...
摘要:前后端的界限是按照瀏覽器和服務器的劃分。前后端彼此互不關聯。關于作者本文部分圖片段落參考文章實踐中的前后端分離。淘寶前后端分離實踐本文源碼詳見服務端代碼。 一、起源 (故事純屬虛構,如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個創業的想法,于是乎開始了自己的創業之夢,但是人手不足啊,于是乎所有角色老子一個人全包了: Roles: PM, DBA, RD, FED, Des...
閱讀 3123·2021-11-24 09:39
閱讀 983·2021-09-07 10:20
閱讀 2405·2021-08-23 09:45
閱讀 2279·2021-08-05 10:00
閱讀 581·2019-08-29 16:36
閱讀 844·2019-08-29 11:12
閱讀 2829·2019-08-26 11:34
閱讀 1848·2019-08-26 10:56