express從零開始架構個人部落格服務端專案

2021-10-08 09:12:52 字數 3781 閱讀 5807

寫好乙個專案,首先要有乙個好的開始(架構)。

首先建立乙個server資料夾,然後初始化這個專案,並安裝express,命令依次是npm init、npm install express -g。然後就是建立專案檔案結構,如下:

api資料夾:用來存放介面,middleware資料夾中用來放獲取到資料後,將結果傳送給前端之前的業務邏輯**。router裡面用來放各個路由檔案,index.js檔案用來將router資料夾中的路由整合在一起。

config資料夾中放的配置檔案,大都是些配置資訊,常量。

models資料夾裡面放的是資料庫操作,db.js是連線資料庫,並暴露乙個方法進行資料庫操作。base.js裡面封裝了幾個基本的資料庫操作,新增、查詢等,統一了操作成功和失敗的返回結果。essay.js就是具體某個功能寫介面時涉及到的資料庫操作啦。

utils檔案中放封裝的功能性方法,這裡我寫了乙個將時間轉換成yyyy-mm-dd  hh:mm:ss格式的方法。

views資料夾裡面就用來放頁面,到時候可以將vue專案打包以後的結果直接放在這裡面。這裡簡單建立了兩個頁面先占個坑位,前台頁面web中的index.html,後台管理頁面manage中的index.html。具體指向還需要在載入的時候設定一下。

目前還只是個簡單的專案結構,我先把基本的**貼在下面。等整個專案做完了,我在放到github上去。

api中的essay.js

const getdate = require("../../utils/formatedate");

//格式化資料

const getlist = data => ;

});};exports.getlist = getlist;

api->router中的essay.js

//隨筆

const express = require("express");

const router = express.router();

const essaymodel = require("../../models/essay");

const essayware=require("../middleware/essay");

module.exports = route => );

router.post("/add", async (req, res, next) => );

router.get("/getcount", async (req, res, next) => );

};

api中的index.js

const router=require('express').router();

const essayrouter=require('./router/essay');

module.exports= () =>

config中的index.js

module.exports = 

};

loader中的express.js

//主要的頁面內容

//路由

// 跨域處理

cors()

);//中介軟體

//模板引擎

//靜態位址

// 404,沒有路由匹配的情況

next(createerror(404));

});// 錯誤處理

res.locals.message = err.message;

res.status(err.status || 500);

// res.render("error");//渲染錯誤頁面,根據預設的模板引擎目錄有關,裡面的檔案

res.send("出錯了啊");

});};

loader中的index.js

//所有載入需要組合在一起的都放在這裡,loader資料夾中的集合

const expressloader=require('./express');

}

models中的db.js

/**

* 連線資料庫,並進行資料庫操作

*/const mysql = require('mysql');

const config=require('../config');

const connection = mysql.createconnection(config.database);

connection.connect(err => );

// exports.connection = connection;

//新的資料庫操作方法

const query=(sql,values)=>else

});});

}exports.query=query;

models中的base.js

/**

* 基本的資料庫操作

* adddata 新增

* searchdata 查詢資料

* getcount 獲取總數

* 刪除(偽)

*/const db = require("./db");

const adddata = async (sql,values) => );

}else);

}};exports.adddata=adddata;

const searchdata=async (sql,values)=>);

}else);

}};exports.searchdata=searchdata;

const getcount=async (sql,values)=>);

}else);

}}exports.getcount=getcount;

models中的essay.js

const base=require('./base');

exports.add=async (request)=>

exports.search=async (request)=>

exports.count=async (request)=>

const express = require("express");

const config = require("./config");

function startserver()

console.log("我在監聽3000埠");

});}startserver();

從零開始學架構 00學習

這個專欄躺在極客時間裡已經躺了很久了,有空的時候才會去聽它,斷斷續續的學習沒有多大效果。還是希望能有時間系統的學習一遍,所以才會整理這份學習筆記,希望寫完了還回再回過頭看看吧。廢話不多說,直接總結乾貨。1.架構設計相對程式設計來說思維方式有很大的差異。架構設計是判斷和取捨,程式設計是邏輯和實現。2....

從零開始學習Express二 路由

路由是什麼 以我自己的理解,通俗易懂的講路由就是使用者訪問我們時候的乙個入口。包括兩部分,乙個位址,乙個動作。位址通常以uri形式出現,例如乙個 動作的話包括 get post put delete等等,通常我們訪問乙個 就是get了乙個 位址。明白了路由之後,我們就知道了其重要性,沒有路由,使用者...

從零開始搭建架構實施Android專案

時間 2016 01 11 23 59 00 精華區 原文主題 資料庫 安卓開發 先給出服務端的架構圖。根據需求和原型設計,可能的模組劃分如下 服務端與客戶端使用json交換資料,使用自定義json格式,約定返回code message,實體封裝在result中,支援單個實體 實體列表 多個實體列表...