nodeJS开发一套完整的项目(2、相关模块介绍)

上接第一节内容,本节我们主要说明在这个项目中运用到的模块以及遇到的问题如何处理

相关模块介绍

序号 模块名称 说明
1 babel 让nodeJS支持ES6的词法。安装babel模块后,会自动安装babel-cli、babel-core、babel-preset-es2015、babel-preset-stage-3、babel-register,如果没有的话,请自行安装这些模块
2 bluebird 实现了将异步回调写法转变为链式写法,并且扩展出了catch、finally、bind等api
3 captchapng 图形验证码
4 config-lite 管理配置文件
5 connect-flash flash 是 session 中一个用于存储信息的特殊区域。消息写入到 flash 中,在跳转目标页中显示该消息。flash 是配置 redirect 一同使用的,以确保消息在目标页面中可用。
6 cross-env 解决跨平台设置NODE_ENV的问题,默认情况下,windows不支持NODE_ENV=development的设置方式,加上cross-env就可以跨平台
7 express-winston node的日志中间插件
8 log4js 日志插件,它可以自定义日志类型,但是express-winston不能,后面我们会通过实例说明
9 fastclick 事件延迟
10 formidable 用于表单处理
11 gm 图片处理工具 参考地址
12 mongoose 我们需要通过mongoose操作mongoDB
13 pinyin 根据汉字获取首字母
14 pm2 它提供对基于node.js的项目运行托管服务参考地址
15 qiniu 这是七牛服务商 网址
16 sha1 加密算法
17 supervisor 调试模块
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”中,刚创建文件的时候只有"test",由于我们采用了新的编程方式,
所以,我们需要在scripts里面配置,否则项目无法启动。在这里,我们只需要配置这么几项:
"dev": "cross-env NODE_ENV=development supervisor --harmony index.js", //运行方式(npm run dev这是项目运行命令)
"local": "cross-env NODE_ENV=local supervisor --harmony index.js",(默认运行文件,一般为index.js)
"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'"(重新启动)

项目结构

项目结构
1、config

项目基本配置,主要配置项目的接口、SESSION、Cookie等信息

1、initData

项目的基础数据,包括城市数据等等

1、logs

日志目录,存放系统生成的日志信息

1、node_modules

node模块

1、public

存放img、js、css等等

1、routes

存放系统路由信息

1、screenshot

这个文件夹我创建的作用是存放临时文件,可有可无

1、view

前端页面存放的位置

1、web

网站的核心内容,包括controller、model、mongoose等等,后面我们会介绍

1、.babelrc

这个文件很重要,它直接关系到你的项目能否运行,不要以为你安装了babel模块,系统一定能跑起来,错,没有这个文件,系统照样跑不起来。那么它里面应该写什么内容呢。

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

没错,就写这些足够了。这里一定要切记

1、cmd.dat

这是控制台命令,先创建cmd.txt记事本,然后把txt换成dat即可

cmd.exe
1、app.js

这个js文件我们后面再说,因为这个文件比较重要

1、index.js

这是启动文件,内容如下:

require('babel-core/register'); //让nodeJs支持es6的规范
require('./app.js');
1、README.md

这是项目的说明文件,没什么好说的

以上就是该项目的模块介绍,下一节,我们将讲解app.js以及跟它有关联的模块使用方法,敬请期待哦.....

相关章节

nodeJS开发一套完整的项目(1、基础配置)
nodeJS开发一套完整的项目(3、数据库链接和项目启动)
为了更好的服务大家,请加入我们的技术交流群:(511387930),同时您也可以扫描下方的二维码关注我们的公众号,每天我们都会分享经验,谢谢大家。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,873评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,483评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,525评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,595评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,018评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,958评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,118评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,873评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,643评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,813评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,293评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,615评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,306评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,170评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,968评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,107评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,894评论 2 278

推荐阅读更多精彩内容