摘要:文件這個(gè)是項(xiàng)目的入口文件,這邊有著項(xiàng)目的一下配置,也在此整合了項(xiàng)目的模塊,其中要注意的就是里面關(guān)于路由模塊的配置了。后面要再想加其他路由模塊的時(shí)候,就按照上面先引入路由模塊,再用設(shè)置好地址,后面就可以用了。
前言 想必很多小伙伴開始學(xué) node 的時(shí)候想搞個(gè)項(xiàng)目出來卻不知道怎么下手吧,這個(gè)教程的話就是教大家用 express 框架簡單粗暴搭建一個(gè)可以用的后臺(tái)出來,然后關(guān)于 node 和 express 的其他知識(shí),大家還是需要自己去看看文檔了解一下。
1 環(huán)境準(zhǔn)備express 既然是基于 node 的開發(fā)框架,首先 node 那些肯定都配好了吧,這個(gè)就自己搞去。然后下面就是要搞 express 的東西了。
1、全局安裝 express,方便后面直接導(dǎo)入 express 模塊。
npm install express -g
2、再全局安裝 express 的腳手架工具,裝完我們就可以很舒服的生成一個(gè) express 項(xiàng)目了
npm install express-generator -g2 項(xiàng)目 2.1 搭建
環(huán)境配好后,搭建項(xiàng)目就很舒服啦,直接就是一條指令
express express-demo
接下來就是,安裝依賴,運(yùn)行項(xiàng)目
npm install npm run start
然后我們打開瀏覽器查看 3000 端口,看到下面的頁面就說明我們 express 后臺(tái)已經(jīng)跑起來了
生成的項(xiàng)目結(jié)構(gòu)如下圖所示
│ app.js │ package.json │ ├─.idea │ │ express-demo.iml │ │ modules.xml │ │ vcs.xml │ │ workspace.xml │ │ │ └─inspectionProfiles ├─bin │ www │ ├─public │ │ index.html │ │ │ ├─images │ ├─javascripts │ └─stylesheets │ style.css │ ├─routes │ index.js │ users.js │ └─views error.jade index.jade layout.jade
我們一個(gè)一個(gè)來說明哈。
1、bin 文件夾
里面的話有 www 文件,那個(gè)就是項(xiàng)目的啟動(dòng)腳本文件,監(jiān)聽端口在里面設(shè)置,一般情況不管這個(gè)文件。
2、public 文件夾
靜態(tài)資源文件夾,放著 css,js,img 那些,然后如果在里面寫個(gè) index.html 的話,我們訪問 3000 端口的時(shí)候就會(huì)直接訪問 index.html 的那個(gè)頁面。所以這邊的話,可以把我們前端開發(fā)打包好的代碼。
3、routes 文件夾
這個(gè)是重點(diǎn)啦,路由文件夾,里面的文件用于生成路由實(shí)例,這個(gè)路由實(shí)例用來響應(yīng)前端發(fā)過的請求,按照現(xiàn)在前后端分離的思想,我們在這里面寫后臺(tái)的那些接口了。我們抓一個(gè)文件來看一下
// index.js // 引入依賴 var express = require("express"); var router = express.Router(); // 處理前端請求 /* GET home page. */ /* 這邊的 router.get 是接收前端的 get 請求 第一個(gè)參數(shù)是路由地址,這邊的 "/" 就指根路由,也就是http://localhost:3000 啦 第二個(gè)參數(shù)是一個(gè)響應(yīng)接口的回調(diào)函數(shù),里面有三個(gè)參數(shù),分別是 請求頭request 響應(yīng)體response,和一個(gè)next */ router.get("/", function(req, res, next) { res.render("index", { title: "Express" }); }); // 導(dǎo)出路由模塊 module.exports = router;
上面這個(gè)是系統(tǒng)默認(rèn)的給的,他的話是根據(jù)模板(下面會(huì)講)生成了一個(gè)頁面渲染回去,但是我們現(xiàn)在前后端都分離啦,一般都是后臺(tái)寫接口丟給前端就好啦,所以我們要改成下面這個(gè)樣子
router.get("/", function(req, res, next) { // 處理好要返回給前端的數(shù)據(jù) let data = { name:"xhm", age:12 } // 用 res.json 方法寫接口 res.json({ code:0, msg:"ok", data:data }) });
安裝上面這樣搞,我們重新訪問 3000 端口的時(shí)候就會(huì)發(fā)現(xiàn)這個(gè)時(shí)候返回就是一個(gè) json 的數(shù)據(jù)啦(如下圖),這樣就寫了一個(gè)簡單的后臺(tái)接口,后面的不同業(yè)務(wù)邏輯的接口,就看你前面怎么去處理那些數(shù)據(jù)啦。
4、views 文件夾
這個(gè)用于存放 jade 模板,這個(gè)的話,不懂也比較少會(huì)用到,只知道這個(gè)可以作為頁面的模板來使用,渲染一下報(bào)錯(cuò)頁面和主頁,其他就沒有用了。
5、app.js 文件
這個(gè)是項(xiàng)目的入口文件,這邊有著項(xiàng)目的一下配置,也在此整合了項(xiàng)目的模塊,其中要注意的就是里面關(guān)于路由模塊的配置了??聪旅娲a
// 引入 routes 文件夾中的路由文件 var indexRouter = require("./routes/index"); var usersRouter = require("./routes/users"); ... // 設(shè)置這些路由的地址 app.use("/", indexRouter); app.use("/users", usersRouter);
這邊做一點(diǎn)說明吧:
這邊設(shè)置路由的地址是相對于項(xiàng)目的,然后在 routes 文件夾里面的地址是相對于這邊的,用上面的代碼來說,假設(shè)那個(gè) ./routes/users 文件里面定義了 "/login" 這么一個(gè)路由地址,那么由于整個(gè) users 的地址是 "/users",所以我們在外面要訪問那個(gè) login 的話,該訪問的地址是 http://localhost:3000/users/login。
后面要再想加其他路由模塊的時(shí)候,就按照上面先引入路由模塊,再用 app.use 設(shè)置好地址,后面就可以用了。
6、package.json 文件
這個(gè)就是整個(gè)項(xiàng)目的配置文件啦。項(xiàng)目的名字啦,版本號(hào)和項(xiàng)目所需的那些依賴全都寫在這里面的啦,但是一般我們是不用管的。
3 數(shù)據(jù)庫既然搭建了后臺(tái),數(shù)據(jù)庫肯定是要連接的,不同的數(shù)據(jù)庫的話,就安裝不同的插件來使用,如果你使用的是 mongoDB 的話,就推薦使用 mongoose 來操作數(shù)據(jù)庫,關(guān)于 mongoose 的使用可以看我另外一篇教程
4 后記源代碼的話我放到我的 Github 上面去了,可以去 clone 下來看一下。關(guān)于 express 項(xiàng)目的簡單開發(fā)就講到這邊啦,但是如果是這么簡單的設(shè)置這個(gè)項(xiàng)目的目錄結(jié)構(gòu)的話,可擴(kuò)展性不高,代碼復(fù)用也不好,所以我們要看下一篇文章啦--express 項(xiàng)目分層實(shí)踐
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/99864.html
摘要:前端邏輯搞定之后,思考一下這個(gè)聊天室的交互是怎么實(shí)現(xiàn)的。在前端監(jiān)聽一個(gè)事件,這個(gè)事件的觸發(fā)條件是成功和服務(wù)端建立連接。攜帶一個(gè)參數(shù),即用戶的輸入。別人發(fā)送的消息現(xiàn)在就需要在前端建立一個(gè)響應(yīng)服務(wù)端有新消息的監(jiān)聽事件了。 一些廢話:) 最近在學(xué)校比較閑,終于有這么一塊時(shí)間可以自由支配了,所以內(nèi)心還是十分的酸爽舒暢的。當(dāng)然了,罪惡的事情也是有的,比如已經(jīng)連續(xù)一周沒有吃早飯了,其實(shí)現(xiàn)在回頭想想...
摘要:前端邏輯搞定之后,思考一下這個(gè)聊天室的交互是怎么實(shí)現(xiàn)的。在前端監(jiān)聽一個(gè)事件,這個(gè)事件的觸發(fā)條件是成功和服務(wù)端建立連接。攜帶一個(gè)參數(shù),即用戶的輸入。別人發(fā)送的消息現(xiàn)在就需要在前端建立一個(gè)響應(yīng)服務(wù)端有新消息的監(jiān)聽事件了。 一些廢話:) 最近在學(xué)校比較閑,終于有這么一塊時(shí)間可以自由支配了,所以內(nèi)心還是十分的酸爽舒暢的。當(dāng)然了,罪惡的事情也是有的,比如已經(jīng)連續(xù)一周沒有吃早飯了,其實(shí)現(xiàn)在回頭想想...
閱讀 1130·2021-11-23 09:51
閱讀 1103·2021-10-18 13:31
閱讀 3038·2021-09-22 16:06
閱讀 4329·2021-09-10 11:19
閱讀 2228·2019-08-29 17:04
閱讀 455·2019-08-29 10:55
閱讀 2522·2019-08-26 16:37
閱讀 3407·2019-08-26 13:29