上接第一節(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)
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)鹃两,謝謝大家。