美文网首页node.jsnodeNode.js
nodeJS开发一套完整的项目(2、相关模块介绍)

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

作者: 陈楠酒肆 | 来源:发表于2017-09-21 15:13 被阅读425次

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

    相关模块介绍

    序号 模块名称 说明
    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),同时您也可以扫描下方的二维码关注我们的公众号,每天我们都会分享经验,谢谢大家。

    相关文章

      网友评论

      • 大黑哥在深圳:写的太空了,感觉都是为了做nodejs 而做nodejs ,并没有深入研究,没有实质性进展项目
        陈楠酒肆:@大黑哥在深圳 功能在后面,这是为项目做准备,并非所有的人都像您这么厉害

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

      本文链接:https://www.haomeiwen.com/subject/qsvzsxtx.html