NodeJS專案製作流程
阿新 • • 發佈:2020-09-14
案例:學生檔案管理
- 技術要點
- http請求響應、MongooDB資料庫、art-template模板引擎、靜態資源訪問。
NodeJS專案製作流程
-
建立專案資料夾並生成專案描述檔案
- 新建專案資料夾
students
- 在專案資料夾中開啟
命令提示符
面板 - 鍵入指令
npm init -y
自動生成package.json
檔案 - 在
students
資料夾中新建檔案app.js
以建立網路伺服器
- 新建專案資料夾
-
建立網站伺服器實現客戶端和伺服器端通訊
- 在
app.js
檔案中,引入http模組,建立網站伺服器
- 在
-
連線資料庫並根據需求設計學員資訊表
- 下載安裝
mongoose
第三方包npm install mongoose
- 在專案根目錄下新建資料夾
model
並建立檔案connect.js
- 在
connect.js
中,引入mongoose
資料庫模組const mongoose = require('mongoose');
- 連線資料庫
mongoose.connect('mongodb://localhost/playground');
- 在
app.js
中引入connect.js
檔案require('./model/connect');
- 在
model
資料夾下新建檔案user.js
以建立資料庫集合 - 在
user.js
中,引入mongoose
資料庫模組const mongoose = require('mongoose');
- 建立學生集合規則
const studentsSchema = new mongoose.Schema({})
- 使用學生集合規則
const Student = mongoose.model('Student', studentsSchema);
- 將學生資訊集合進行匯出
module.exports = Student;
- 回到
app.js
引入學生資訊集合const Student = require('./model/user');
- 下載安裝
-
建立路由並實現頁面模板呈遞
- 下載安裝路由模組
npm install router
- 在
app.js
中引入router模組require('router');
- 獲取路由物件
const router = getRouter();
- 定義路由,呈遞學生檔案資訊頁面 ``
- 定義路由
router.get('/add', (req, res) => {res.end('test');})
- 當客戶端訪問伺服器端的時候,實現路由的呼叫
- 下載安裝路由模組
-
實現靜態資源訪問
- 下載安裝模板引擎模組
npm install art-template
- 引入模板引擎
const template = require('art-template');
- 配置模板根目錄
template.defaults.root = path.join(__dirname, 'views');
- 當客戶端訪問伺服器端的時候,啟動路由功能
- 下載安裝靜態資源訪問服務
npm install serve-static
- 引入模組
const serveStatic = require('serve-static');
- 呼叫方法,實現靜態資源訪問服務
const serve = serveStatic(path.join(__dirname, 'public'));
- 當客戶端訪問伺服器端的時候,啟動靜態資源訪問服務功能
- 下載安裝模板引擎模組
-
實現學生資訊新增功能
- 在模板的表單中指定請求地址與請求方式
action method
- 為每一個表單項新增name屬性
- 新增實現學生資訊功能路由
- 引入querystring模組,將字串解析為物件
const querystring = require('querystring');
- 接收客戶端傳遞過來的學生資訊
- 將學生資訊新增到資料庫中
- 將頁面重定向到學生資訊列表頁面
- 在模板的表單中指定請求地址與請求方式
-
實現學生資訊展示功能
- 從資料庫中將所有的學生資訊查詢出來
- 通過模板引擎將學生資訊和HTML模板進行拼接
- 將拼接好的HTML模板響應給客戶端
第三方模組router
- 功能:實現路由
- 使用步驟
- 獲取路由物件
- 呼叫路由物件提供的方法建立路由
- 啟用路由,使路由生效
const getRouter = require('router')
const router = getRouter();
router.get('/add', (req, res) => {
res.end('Hello World!')
})
server.on('request', (req, res) => {
router(req, res)
})
- 下載
npm install router
第三方模組serve-static
- 功能:實現靜態資源訪問服務
- 步驟:
- 引入serve-static模組獲取建立靜態資源服務功能的方法
- 呼叫方法建立靜態資源服務並指定靜態資源服務目錄
- 啟用靜態資源服務功能
const serveStatic = require('serve-static')
const serve = serveStatic('public')
server.on('request', () => {
serve(req, res)
})
server.listen(3000)