4.1 開發環境\目錄結構\配置文件\功能梳理-博客後端Api-NodeJs+Express+Mysql實戰

從本章開始,正式學習如何使用 Nodejs + Express + Mysql 搭建一個博客。

開發環境

首先說下開發環境安裝的核心依賴版本:node

Node.js: 8.9.3mysql

Mysql: 5.6.25git

Express: 4.14.0github

目錄準備

mkdir blogNodejs //建立blog文件夾

cd blogNodejs //進入blog目錄

npm init //初始化blog空項目

而後就根據提示填寫一些項目初始化信息,而後回車建立成功web

clipboard.png

clipboard.png

目錄介紹

-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...

安裝依賴模塊

爲了不各位安裝版本和我講述的依賴版本不一致,而形成一些小錯誤;sql

如今將 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目錄下控制檯運行如下命令 安裝所需的模塊:express

npm install

若是遇到部分依賴被qiang,請使用npm

cnpm install

clipboard.png

配置文件

無論是小項目仍是大項目,將配置與代碼分離是一個很是好的作法。咱們一般將配置寫到一個配置文件裏,如 config.js 或 config.json ,並放到項目的根目錄下。但一般咱們都會有許多環境,如本地開發環境、測試環境和線上環境等,不一樣的環境的配置不一樣,咱們不可能每次部署時都要去修改引用 config.test.js 或者 config.production.js。json

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, //端口
    },
};

配置釋義:

一、env:當前環境,便於後面業務中判斷

二、mysql:數據庫鏈接配置

功能梳理

博客系統 我不想搞得太複雜,就只實現基礎功能,看完教程大家能夠本身延伸

clipboard.png

相關文章
相關標籤/搜索