nodeJS開發(fā)一套完整的項目(2阅虫、相關(guān)模塊介紹)

上接第一節(jié)內(nèi)容孽拷,本節(jié)我們主要說明在這個項目中運(yùn)用到的模塊以及遇到的問題如何處理

相關(guān)模塊介紹

序號 模塊名稱 說明
1 babel 讓nodeJS支持ES6的詞法雌续。安裝babel模塊后斩个,會自動安裝babel-cli、babel-core驯杜、babel-preset-es2015受啥、babel-preset-stage-3、babel-register,如果沒有的話滚局,請自行安裝這些模塊
2 bluebird 實(shí)現(xiàn)了將異步回調(diào)寫法轉(zhuǎn)變?yōu)殒準(zhǔn)綄懛ň优⑶覕U(kuò)展出了catch、finally藤肢、bind等api
3 captchapng 圖形驗(yàn)證碼
4 config-lite 管理配置文件
5 connect-flash flash 是 session 中一個用于存儲信息的特殊區(qū)域太闺。消息寫入到 flash 中,在跳轉(zhuǎn)目標(biāo)頁中顯示該消息嘁圈。flash 是配置 redirect 一同使用的省骂,以確保消息在目標(biāo)頁面中可用。
6 cross-env 解決跨平臺設(shè)置NODE_ENV的問題,默認(rèn)情況下最住,windows不支持NODE_ENV=development的設(shè)置方式钞澳,加上cross-env就可以跨平臺
7 express-winston node的日志中間插件
8 log4js 日志插件,它可以自定義日志類型涨缚,但是express-winston不能轧粟,后面我們會通過實(shí)例說明
9 fastclick 事件延遲
10 formidable 用于表單處理
11 gm 圖片處理工具 參考地址
12 mongoose 我們需要通過mongoose操作mongoDB
13 pinyin 根據(jù)漢字獲取首字母
14 pm2 它提供對基于node.js的項目運(yùn)行托管服務(wù)參考地址
15 qiniu 這是七牛服務(wù)商 網(wǎng)址
16 sha1 加密算法
17 supervisor 調(diào)試模塊
18 time-formater 日期模塊
19 express 腳手架
20 express-session session
21 cookie-parser cookie模塊
22 winston 日志模塊
23 connect-mongo 該模塊用于將session存入mongo中

整個package.json文件如下:

{
  "name": "node-element",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "author": "cangdu <1127173874@qq.com>",
  "license": "ISC",
  "private": true,
  "scripts": {
    "dev": "cross-env NODE_ENV=development supervisor --harmony index.js",
    "local": "cross-env NODE_ENV=local supervisor --harmony index.js",
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "cross-env NODE_ENV=production pm2 start index.js --node-args='--harmony' --name 'node-element'",
    "stop": "cross-env NODE_ENV=production pm2 stop index.js --name 'node-element'",
    "restart": "cross-env NODE_ENV=production pm2 restart index.js --node-args='--harmony' --name 'node-element'"
  },
  "repository": {
    "type": "git",
    "url": "#"
  },
  "dependencies": {
    "babel": "^6.23.0",
    "babel-cli": "^6.24.1",
    "babel-core": "^6.24.0",
    "babel-preset-es2015": "^6.24.0",
    "babel-preset-stage-3": "^6.22.0",
    "babel-register": "^6.24.0",
    "bluebird": "^3.5.0",
    "captchapng": "0.0.1",
    "config-lite": "^1.5.0",
    "connect-flash": "^0.1.1",
    "connect-history-api-fallback": "^1.3.0",
    "connect-mongo": "^1.3.2",
    "cookie-parser": "^1.4.3",
    "cross-env": "^5.0.0",
    "express": "^4.15.2",
    "express-session": "^1.15.2",
    "express-winston": "^2.3.0",
    "fastclick": "^1.0.6",
    "formidable": "^1.1.1",
    "gm": "^1.23.0",
    "iscroll": "^5.2.0",
    "log4js": "^0.6.29",
    "marked": "^0.3.6",
    "moment": "^2.18.1",
    "mongodb": "^2.2.25",
    "mongoose": "^4.9.3",
    "node-fetch": "^1.6.3",
    "pinyin": "^2.8.3",
    "pm2": "^2.4.6",
    "qiniu": "^6.1.13",
    "sha1": "^1.1.1",
    "showdown": "^1.7.3",
    "supervisor": "^0.12.0",
    "time-formater": "^1.0.1",
    "time-stamp": "^2.0.0",
    "winston": "^2.3.1",
    "better-scroll": "^1.2.3"
  },
  "devDependencies": {
    "babel-plugin-transform-async-to-generator": "^6.24.1",
    "babel-plugin-transform-es2015-classes": "^6.24.1",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
    "babel-plugin-transform-export-extensions": "^6.22.0"
  }
}
備注:
在“scripts”中,剛創(chuàng)建文件的時候只有"test"脓魏,由于我們采用了新的編程方式兰吟,
所以,我們需要在scripts里面配置茂翔,否則項目無法啟動混蔼。在這里,我們只需要配置這么幾項:
"dev": "cross-env NODE_ENV=development supervisor --harmony index.js", //運(yùn)行方式(npm run dev這是項目運(yùn)行命令)
"local": "cross-env NODE_ENV=local supervisor --harmony index.js",(默認(rèn)運(yùn)行文件檩电,一般為index.js)
"start": "cross-env NODE_ENV=production pm2 start index.js --node-args='--harmony' --name 'node-element'",(開始運(yùn)行)
"stop": "cross-env NODE_ENV=production pm2 stop index.js --name 'node-element'",(停止運(yùn)行)
"restart": "cross-env NODE_ENV=production pm2 restart index.js --node-args='--harmony' --name 'node-element'"(重新啟動)

項目結(jié)構(gòu)

項目結(jié)構(gòu)
1拄丰、config

項目基本配置,主要配置項目的接口俐末、SESSION料按、Cookie等信息

1、initData

項目的基礎(chǔ)數(shù)據(jù)卓箫,包括城市數(shù)據(jù)等等

1载矿、logs

日志目錄,存放系統(tǒng)生成的日志信息

1烹卒、node_modules

node模塊

1闷盔、public

存放img、js旅急、css等等

1逢勾、routes

存放系統(tǒng)路由信息

1、screenshot

這個文件夾我創(chuàng)建的作用是存放臨時文件藐吮,可有可無

1溺拱、view

前端頁面存放的位置

1逃贝、web

網(wǎng)站的核心內(nèi)容,包括controller迫摔、model沐扳、mongoose等等,后面我們會介紹

1句占、.babelrc

這個文件很重要沪摄,它直接關(guān)系到你的項目能否運(yùn)行,不要以為你安裝了babel模塊纱烘,系統(tǒng)一定能跑起來杨拐,錯,沒有這個文件擂啥,系統(tǒng)照樣跑不起來戏阅。那么它里面應(yīng)該寫什么內(nèi)容呢。

{
    "presets": ["stage-3"],
    "plugins": [
        "transform-async-to-generator",
        "transform-es2015-modules-commonjs",
        "transform-export-extensions"
    ]
}

沒錯啤它,就寫這些足夠了。這里一定要切記

1舱痘、cmd.dat

這是控制臺命令,先創(chuàng)建cmd.txt記事本变骡,然后把txt換成dat即可

cmd.exe
1、app.js

這個js文件我們后面再說芭逝,因?yàn)檫@個文件比較重要

1塌碌、index.js

這是啟動文件,內(nèi)容如下:

require('babel-core/register'); //讓nodeJs支持es6的規(guī)范
require('./app.js');
1旬盯、README.md

這是項目的說明文件台妆,沒什么好說的

以上就是該項目的模塊介紹,下一節(jié)胖翰,我們將講解app.js以及跟它有關(guān)聯(lián)的模塊使用方法接剩,敬請期待哦.....

相關(guān)章節(jié)

nodeJS開發(fā)一套完整的項目(1、基礎(chǔ)配置)
nodeJS開發(fā)一套完整的項目(3萨咳、數(shù)據(jù)庫鏈接和項目啟動)
為了更好的服務(wù)大家懊缺,請加入我們的技術(shù)交流群:(511387930),同時您也可以掃描下方的二維碼關(guān)注我們的公眾號培他,每天我們都會分享經(jīng)驗(yàn)鹃两,謝謝大家。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舀凛,一起剝皮案震驚了整個濱河市俊扳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猛遍,老刑警劉巖馋记,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件号坡,死亡現(xiàn)場離奇詭異,居然都是意外死亡抗果,警方通過查閱死者的電腦和手機(jī)筋帖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冤馏,“玉大人日麸,你說我怎么就攤上這事〈猓” “怎么了代箭?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涕刚。 經(jīng)常有香客問我嗡综,道長,這世上最難降的妖魔是什么杜漠? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任极景,我火速辦了婚禮,結(jié)果婚禮上驾茴,老公的妹妹穿的比我還像新娘盼樟。我一直安慰自己,他們只是感情好锈至,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布晨缴。 她就那樣靜靜地躺著,像睡著了一般峡捡。 火紅的嫁衣襯著肌膚如雪击碗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天们拙,我揣著相機(jī)與錄音稍途,去河邊找鬼。 笑死砚婆,一個胖子當(dāng)著我的面吹牛晰房,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播射沟,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼殊者,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了验夯?” 一聲冷哼從身側(cè)響起猖吴,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挥转,沒想到半個月后海蔽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體共屈,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年党窜,在試婚紗的時候發(fā)現(xiàn)自己被綠了拗引。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡幌衣,死狀恐怖矾削,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豁护,我是刑警寧澤哼凯,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站楚里,受9級特大地震影響断部,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜班缎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一蝴光、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧达址,春花似錦虱疏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽对粪。三九已至右冻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間著拭,已是汗流浹背纱扭。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留儡遮,地道東北人乳蛾。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像鄙币,于是被迫代替她去往敵國和親肃叶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容