Webstorm 新建 Express 專案結構分析
根據Webstorm新建Express的專案結構,對Express各個模組間功能和資料夾合作進行分析。
參考文章:
https://www.jianshu.com/p/02273a225e3e
1.新建Express專案目錄:
- bin:啟動配置檔案,在 www 裡修改執行埠號
- node_modules:存放所有的專案依賴庫,就像java存放架包
- public:用於存放靜態資原始檔 圖片,CSS,JAVASCRIPT檔案..
- routers:路由檔案相當於springmvc中的Controller,ssh中的action
- views:存放頁面的地方
- package.json:專案依賴配置及開發者資訊。
- app.js:應用核心配置檔案,專案入口。
2.app.js配置詳解
可以參考文章:
http://www.cnblogs.com/fhen/p/5257467.html
https://blog.csdn.net/qq_31411389/article/details/54019267
// 1. 匯入相關模組
var createError = require('http-errors'); //引用
var express = require('express'); //引用express
var path = require('path'); // 伺服器路徑
var cookieParser = require('cookie-parser'); //解析cookie
var bodyParser = require('body-parser'); // 解析request,respond引數
var logger = require('morgan'); //日誌功能,需要手動配置
var indexRouter = require('./routes/index'); //註冊路由的位置
var usersRouter = require('./routes/users');
// 2. 註冊var app = express()
var app = express();
// 3. 使用app.set 設定 express 內部的一些引數
// view engine setup
app.set('views', path.join(__dirname, 'views')); //設定模板資料夾的路徑
app.set('view engine', 'ejs'); //設定檢視模板為ejs
// 4. 使用app.use 來註冊函式,可以簡單的認為是向task的陣列進行push操作
app.use(logger('dev')); //設為開發模式 輸出資訊
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended:false }))
app.use(express.static(path.join(__dirname, 'public'))); //靜態資原始檔夾為public
app.use('/', indexRouter); //設定url為 /引向index路由
app.use('/users', usersRouter); //設定url為 /user引向user路由
// catch 404 and forward to error handler 捕獲404錯誤資訊
app.use(function(req, res, next) {
next(createError(404));
});
// error handler 錯誤處理中介軟體
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
3.routes(index.js和user.js)
這個主要是配置完app.js之後,如何使用,主要涉及路由級中介軟體的使用。
# 1. index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
# 2. users.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
4 . Express專案執行的總體的過程和邏輯大致可以分為三步:
綜合上面知識,可以看出一個頁面的執行過程和邏輯大致分為三步,路由中介軟體(index.js)的書寫同時中介軟體的模板(index.ejs)要寫好、最後由app.js配置和呼叫路由中介軟體。
1.app.js配置
var indexRouter = require('./routes/index'); //註冊路由的位置
var usersRouter = require('./routes/users');
app.use('/', indexRouter); //設定url為 /引向index路由
app.use('/users', usersRouter); //設定url為 /user引向user路由
2.routes 呼叫路由級中介軟體
# 1. index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
# 2. users.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
3.views 模板渲染
# index.ejs 模板
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
</body>
</html>
express框架學習筆記:
https://www.cnblogs.com/liujiale/p/6023367.html
https://blog.csdn.net/qq_31411389/article/category/6371088
http://www.cnblogs.com/ostrich-sunshine/p/6756147.html
http://www.cnblogs.com/ostrich-sunshine/p/7474471.html
http://www.cnblogs.com/ostrich-sunshine/category/977656.html
相關文章
- Idea新建Maven專案,無法新建package,不能識別module結構體IdeaMavenPackage結構體
- webstorm中express專案bin/www檔案型別顯示錯誤解決方法WebORMExpress型別
- vue-cli#4.7專案結構分析Vue
- 新建git專案Git
- laravel 新建專案Laravel
- 用webstorm搭建vue專案WebORMVue
- Webstorm 使用 Git 管理專案WebORMGit
- 小白學習Vue(11)--環境安裝及專案構建 | webstorm構建vue專案VueWebORM
- 實戰react技術棧+express前後端部落格專案(1)– 整體專案結構搭建ReactExpress後端
- 專案新建模板
- AntDesignBlazor示例——新建專案Blazor
- SpringBoot(一) 新建專案Spring Boot
- 新建vite + bootstrap 5 專案Viteboot
- 新建 Laravel 6 專案(火星)Laravel
- idea中新建javaWeb專案IdeaJavaWeb
- Golang初學:新建專案 及 gin web 專案GolangWeb
- IntelliJ IDEA如何新建專案HTMLIntelliJIdeaHTML
- [VUE]vue3新建專案Vue
- 如何構建「大型 Node.js 專案」的專案結構?Node.js
- REdis AOF檔案結構分析Redis
- vue-cli 專案結構Vue
- struct結構體專案1Struct結構體
- 『chisel』透過最小專案理解 Chisel 專案結構
- Drafter: 一個在iOS專案中分析程式碼結構的工具RaftiOS
- Android Studio目錄結構及工程專案結構解析Android
- RBAC_專案結構劃分
- ATM-Shop專案結構樹
- Golang 扁平專案程式碼結構Golang
- python 新建專案呼叫已安裝模板Python
- 【node】如何在本地新建一個介面(使用express)Express
- express中間層搭建前端專案3Express前端
- 表`t`的INODE結構檔案分析
- vue(16)vue-cli建立專案以及專案結構解析Vue
- React 專案結構和元件命名之道React元件
- 小程式的專案結構設計
- flask-restful 大型專案結構示例FlaskREST
- Avalonia開發(二)專案結構解析
- 05 常見微服務專案結構微服務