资讯专栏INFORMATION COLUMN

4.1 开发环境目录结构配置文件功能梳理-博客后端Api-NodeJs+Express+Mys

DevWiki / 2624人阅读

摘要:从本章开始,正式学习如何使用搭建一个博客。但通常我们都会有许多环境,如本地开发环境测试环境和线上环境等,不同的环境的配置不同,我们不可能每次部署时都要去修改引用或者。会根据环境变量的不同从当前执行进程目录下的目录加载不同的配置文件。

从本章开始,正式学习如何使用 Nodejs + Express + Mysql 搭建一个博客。
开发环境

首先说下开发环境安装的核心依赖版本:

Node.js: 8.9.3

Mysql: 5.6.25

Express: 4.14.0

目录准备
mkdir blogNodejs //创建blog文件夹

cd blogNodejs //进入blog目录

npm init //初始化blog空项目

然后就根据提示填写一些项目初始化信息,然后回车创建成功

目录介绍
-bin/www 项目启动必备文件
-configs 存放配置文件
-controllers 控制层
-libs 存放一些工具函数js等
-locales 存放i18n国际化json
-logs 存放错误日志
-middlewares 存放中间件
-models 存放数据库文件
-public 存放静态文件,如样式、图片等(由于咱们主要使用express书写后端api 所以该文件夹仅作为备用)
-routes 存放路由文件
-services 存放服务文件
-views 存放模板文件(由于咱们主要使用express书写后端api 所以该文件夹仅作为备用)
-app.js 主入口文件
-package.json 存储项目名、描述、作者、依赖等等信息
-readme.md 项目介绍等
为了方便代码多地点编写,我将其放到了github上
https://github.com/wangwenjie...
安装依赖模块

为了避免各位安装版本和我讲述的依赖版本不一致,而造成一些小错误;

现在将 package.json 供大家下载覆盖blog根目录下的package.json

对应模块的用处:
bluebird:老牌Promise挽救回调地狱
co:搭配bluebird让异步写起来像同步
blueimp-md5:用于密码md5加密(后面会介绍)
body-parser:设置body解析数据类型
config-lite:配置文件(后面会介绍)(可以有效区分开发dev、测试test、预上线st、正式product环境)
cors: 设置跨域白名单(后面会介绍)
debug:控制台debug 
ejs: ejs模板
winston:日志
express-winston:基于 winston 的用于 express 的日志中间件
i18n: i18n国际化
jsonwebtoken:前后端分离jwt token(后面会介绍)
morgan:开发模式下log
multer: 文件上传
mysql: mysql
node-schedule: 定时任务schedule(后面会介绍)
nodemailer:邮箱服务(后面会介绍)
sequelize:mysql框架(后面会介绍)
underscore:js 工具函数

当前blog目录下控制台运行以下命令 安装所需的模块:

npm install 

如果遇到部分依赖被qiang,请使用

cnpm install 

配置文件

不管是小项目还是大项目,将配置与代码分离是一个非常好的做法。我们通常将配置写到一个配置文件里,如 config.js 或 config.json ,并放到项目的根目录下。但通常我们都会有许多环境,如本地开发环境、测试环境和线上环境等,不同的环境的配置不同,我们不可能每次部署时都要去修改引用 config.test.js 或者 config.production.js。

config-lite 模块正是你需要的。-- 摘自nswbmw/N-blog

config-lite 是一个轻量的读取配置文件的模块。config-lite 会根据环境变量(NODE_ENV)的不同从当前执行进程目录下的 config 目录加载不同的配置文件。如果不设置 NODE_ENV,则读取默认的 default 配置文件,如果设置了 NODE_ENV,则会合并指定的配置文件和 default 配置文件作为配置,config-lite 支持 .js、.json、.node、.yml、.yaml 后缀的文件。

如果程序以 NODE_ENV=test node app 启动,则 config-lite 会依次降级查找 config/test.js、config/test.json、config/test.node、config/test.yml、config/test.yaml 并合并 default 配置;

如果程序以 NODE_ENV=production node app 启动,则 config-lite 会依次降级查找 config/production.js、config/production.json、config/production.node、config/production.yml、config/production.yaml 并合并 default 配置。

在 blogNodejs/config 目录下新建 default.js,添加如下代码:

config/default.js

module.exports = {
env: "dev",//当前环境
mysql: { //mysql数据库
    host: "127.0.0.1",
    user: "root", //你安装的数据库用户名
    password: "root", //你安装的mysql数据库密码
    database: "blog", //数据库
    port: 3306, //端口
    },
};

配置释义:

1、env:当前环境,便于后面业务中判断

2、mysql:数据库连接配置

功能梳理

博客系统 我不想搞得太复杂,就只实现基础功能,看完教程你们可以自己延伸

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104082.html

相关文章

  • NodeJs+Express+Mysql + Vuejs 项目实战 - 大纲

    摘要:多一个技能多一条出路,祝你在自学道路上越走越好,掌握自己的核心技能,不只是优秀,还要成为不可替代的人 NodeJs+Express+Mysql + Vuejs 项目实战 最近准备写一系列文章,全面讲述如何基于NodeJs + Express + Mysql + Vuejs 从零开发前后端完全分离项目; 文笔及技术可能在某些方面欠佳,请您指正,共同学习进步 前端:Vuejs全家桶 后端:...

    noONE 评论0 收藏0
  • 4.2 数据库表/Sequelize Mysql-博客后端Api-NodeJs+Express+My

    功能梳理完了以后,咱们就可以开始数据库表设计了: 数据库表图: showImg(https://segmentfault.com/img/bVbr9GC?w=1922&h=1140); 首先打开Navicat Premium 创建数据库 blog 配置如下: showImg(https://segmentfault.com/img/bVbr81Y?w=720&h=352); 课前学习:1、Sequ...

    nicercode 评论0 收藏0
  • 4.6 Nodemailer系统发用户邮件-博客后端Api-NodeJs+Express+Mysql

    摘要:发邮件组件使用发送邮件咱们日常开发中有时会遇到需要系统推送邮件给相关用户例如注册后发送激活邮箱等等,此时就需要用到首先,去云云云邮件推送以为例是一个基于的邮件服务模块。 NodeMailerNodejs发邮件组件Nodemailerhttp://blog.fens.me/nodejs-em...Node.js使用NodeMailer发送邮件http://www.jianshu.com/...

    shadowbook 评论0 收藏0
  • 4.6 Nodemailer系统发用户邮件-博客后端Api-NodeJs+Express+Mysql

    摘要:发邮件组件使用发送邮件咱们日常开发中有时会遇到需要系统推送邮件给相关用户例如注册后发送激活邮箱等等,此时就需要用到首先,去云云云邮件推送以为例是一个基于的邮件服务模块。 NodeMailerNodejs发邮件组件Nodemailerhttp://blog.fens.me/nodejs-em...Node.js使用NodeMailer发送邮件http://www.jianshu.com/...

    svtter 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<