成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

手把手用 express 搭建后臺(tái)

Render / 3387人閱讀

摘要:文件這個(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 -g
2 項(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)跑起來了

2.2 項(xiàng)目結(jié)構(gòu)

生成的項(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

相關(guān)文章

  • 前端周刊第41期

    摘要:注意本文為前端周刊早期整理的舊文重發(fā),不過大部分內(nèi)容并沒有過時(shí),已經(jīng)看過的同學(xué)可以直接去文末訂閱前端周刊微信公眾號(hào)。想和我面對面交流掃下方二維碼添加我為好友。 注意:本文為前端周刊早期整理的舊文重發(fā),不過大部分內(nèi)容并沒有過時(shí),已經(jīng)看過的同學(xué)可以直接去文末訂閱前端周刊微信公眾號(hào)。 文章教程 手把手教你玩轉(zhuǎn) Github Pages 24ways.org 有人說 Github 就是工程師的...

    ixlei 評論0 收藏0
  • 前端周刊第41期

    摘要:注意本文為前端周刊早期整理的舊文重發(fā),不過大部分內(nèi)容并沒有過時(shí),已經(jīng)看過的同學(xué)可以直接去文末訂閱前端周刊微信公眾號(hào)。想和我面對面交流掃下方二維碼添加我為好友。 注意:本文為前端周刊早期整理的舊文重發(fā),不過大部分內(nèi)容并沒有過時(shí),已經(jīng)看過的同學(xué)可以直接去文末訂閱前端周刊微信公眾號(hào)。 文章教程 手把手教你玩轉(zhuǎn) Github Pages 24ways.org 有人說 Github 就是工程師的...

    yanwei 評論0 收藏0
  • 把手教你擼一個(gè)網(wǎng)頁聊天室

    摘要:前端邏輯搞定之后,思考一下這個(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)在回頭想想...

    nemo 評論0 收藏0
  • 把手教你擼一個(gè)網(wǎng)頁聊天室

    摘要:前端邏輯搞定之后,思考一下這個(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)在回頭想想...

    leiyi 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<