上接第一节内容,本节我们主要说明在这个项目中运用到的模块以及遇到的问题如何处理
相关模块介绍
序号 | 模块名称 | 说明 |
---|---|---|
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 <[email protected]>",
"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),同时您也可以扫描下方的二维码关注我们的公众号,每天我们都会分享经验,谢谢大家。