成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Node后端Express框架安裝及應(yīng)用

Node后端Express框架安裝及應(yīng)用

熱門標(biāo)簽:400電話辦理費(fèi)用低 谷歌地圖標(biāo)注日期 外呼系統(tǒng)怎么群發(fā)短信 宿遷怎么辦理400電話 蘇州呼叫中心外呼系統(tǒng)哪家強(qiáng) 地圖標(biāo)注項(xiàng)目幾個(gè)月 400電話申請(qǐng)到底哪家好 鶴壁高頻外呼系統(tǒng)多少錢一個(gè)月 聯(lián)通外呼系統(tǒng)電腦app軟件

Express 框架核心特性:

  • 可以設(shè)置中間件來響應(yīng) HTTP 請(qǐng)求。
  • 定義了路由表用于執(zhí)行不同的 HTTP 請(qǐng)求動(dòng)作。
  • 可以通過向模板傳遞參數(shù)來動(dòng)態(tài)渲染 HTML 頁(yè)面。

Express安裝

express的使用過程有兩種方式:

  •  方式一:通過express提供的腳手架,直接創(chuàng)建一個(gè)應(yīng)用的骨架;
  • 方式二:從零搭建自己的express應(yīng)用結(jié)構(gòu);

方式一:安裝express-generator

npm install -g express-generator

創(chuàng)建項(xiàng)目

express express-app

項(xiàng)目目錄如下

├── app.js
├── bin
│   └── www
├── package-lock.json
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.jade
    ├── index.jade
    └── layout.jade

之后 cd 進(jìn)入到對(duì)應(yīng)的目錄下,然后將項(xiàng)目跑起來:

npm install 
node bin/www
node app.js   

方式二: 自己搭建環(huán)境

上面通過express提供的腳手架,直接創(chuàng)建一個(gè)應(yīng)用的骨架;現(xiàn)在我們自己從零搭建項(xiàng)目:

初始化一個(gè)新的項(xiàng)目:

npm init -y

安裝express:

npm install express

新建app.js

express 初體驗(yàn)

現(xiàn)在搭建自己的第一個(gè)express程序:在app.js中加入如下代碼

const express = require('express');
// 創(chuàng)建服務(wù)器
const app = express();
app.get('/',(req,res) => {
  res.end("Hello World");
});
app.listen(8000,() => {
  console.log("服務(wù)器啟動(dòng)成功~");
})

進(jìn)入項(xiàng)目根目錄下,在終端中將服務(wù)器跑起來:

node app.js

到瀏覽器:訪問localhost:8000即可

請(qǐng)求和響應(yīng)

請(qǐng)求的路徑中如果有一些參數(shù),可以這樣表達(dá):

/users/:userId;

request對(duì)象中要獲取可以通過req.params.userId;

返回?cái)?shù)據(jù)

返回?cái)?shù)據(jù),我們可以方便的使用json

res.json(數(shù)據(jù))方式;

const express = require('express');
const app = express();
app.get('/users/:userId', (req, res, next) => {
  console.log(req.params.userId);
  res.json({username: "liyingxia", password: "8i8i8i8i" });
});
app.listen(8000, () => {
  console.log("靜態(tài)服務(wù)器啟動(dòng)成功~");
})

Express 中間件

認(rèn)識(shí)中間件

Express是一個(gè)路由和中間件的Web框架,它本身的功能非常少:

Express應(yīng)用程序本質(zhì)上是一系列中間件函數(shù)的調(diào)用;

中間是什么?

中間件的本質(zhì)就是一個(gè)回調(diào)函數(shù);

這個(gè)回調(diào)函數(shù)接受三個(gè)參數(shù):

請(qǐng)求對(duì)象(request對(duì)象);

響應(yīng)對(duì)象(response對(duì)象);

next函數(shù)(在express中定義的用于執(zhí)行下一個(gè)中間件的函數(shù));

中間件中可以執(zhí)行哪些任務(wù)?

執(zhí)行任何代碼;

更改請(qǐng)求(request)和響應(yīng)(response)對(duì)象;

結(jié)束請(qǐng)求-響應(yīng)周期(返回?cái)?shù)據(jù));

調(diào)用棧中的下一個(gè)中間件;

如果當(dāng)前中間件功能沒有結(jié)束請(qǐng)求-響應(yīng)周期,則必須調(diào)用 next()將控制權(quán)傳遞給下一個(gè)中間件功能,否則,請(qǐng)求將被掛起。

使用中間件

express主要提供了兩種方式:app/router.useapp/router.methods這兩種方式把中間件應(yīng)用到我們的應(yīng)用程序中;

methods指的是常用的請(qǐng)求方式,比如:app.getapp.post

// express 中間件的使用
const express = require('express');
const res = require('express/lib/response');
const app = express();
app.use((req,res,next) => {
  console.log("middleware");
  next();
});
app.use((req,res,next) => {
  console.log("middleware");
  res.end("Hello Common Middleware");
})
app.listen(9000,()=>{
  console.log("中間件服務(wù)器啟動(dòng)成功~")
})

path匹配中間件:

//path 路徑匹配中間件
app.use('/home',(req,res,next) => {
  console.log("home middleware 中間件");
  next();
});
app.use('/home',(req,res,next) => {
  console.log("home middleware02");
  next();
  res.end("middleware");
});
app.use((req,res,next) =>{
   console.log("middleware");
})

path 和 method 匹配中間件

// path 和 method 匹配中間件
app.get('/home',(req,res,next) => {
  console.log("home get middleware");
  next();
})
app.post('/login',(req,res,next) => {
  console.log("login post middleware");
  next();
});
app.use((req,res,next) => {
  console.log("common middleware");
})
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.post('/login',(req,res,next) => {
  console.log(req.body);
  res.end("登陸成功~");
});

日志記錄中間件

如果我們希望將請(qǐng)求日志記錄下來,那么可以使用express官網(wǎng)開發(fā)的第三方庫(kù):morgan
morgan安裝:

npm install morgan

如何用?直接作為中間件使用即可:

const loggerWriter = fs.createWriteStream('./log/access.log', {
  flags: 'a+'
})
app.use(morgan('combined', {stream: loggerWriter}));

上傳文件中間件

圖片上傳我們可以使用express官方開發(fā)的第三方庫(kù):multer

multer安裝:

npm install multer

上傳文件:

const upload = multer({
  dest: "uploads/"
})

app.post('/upload', upload.single('file'), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上傳成功~");
})

添加上傳文件后綴名:

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "uploads/")
  },
  filename: (req, file, cb) => {
    cb(null, Date.now() + path.extname(file.originalname));
  }
})
const upload = multer({
  storage
})
app.post('/upload', upload.single('file'), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上傳成功~");
})

上傳多張圖片:

app.use('/upload', upload.array('files'), (req, res, next) => {
  console.log(req.files);
});

請(qǐng)求和響應(yīng)

客戶端傳遞到服務(wù)器參數(shù)的方法常見的是5種:

方式一:通過get請(qǐng)求中的URL的params;

方式二:通過get請(qǐng)求中的URL的query;

方式三:通過post請(qǐng)求中的body的json格式;

方式四:通過post請(qǐng)求中的body的x-www-form-urlencoded格式;

方式五:通過post請(qǐng)求中的form-data格式;

請(qǐng)求解析

方式一:params

請(qǐng)求地址: http://locahost:8000/login/asd/ass

獲取參數(shù):

app.use('/login/:id/:name', (req, res, next) => {
  console.log(req.params);
  res.json("請(qǐng)求成功~");
})

方式二:query

請(qǐng)求地址:http://localhost:8000/login?username=liyingxiapassword=123456
獲取參數(shù):

app.use('/login', (req, res, next) => {
  console.log(req.query);
  res.json("請(qǐng)求成功~");
})

方式三:通過post請(qǐng)求中的body的json格式;

在客戶端發(fā)送post請(qǐng)求時(shí),會(huì)將數(shù)據(jù)放到body中:客戶端可以通過json的方式傳遞,也可以通過form表單的方式傳遞;

自己編寫中間件來解析JSON:

app.use((req, res, next) => {
  if (req.headers['content-type'] === 'application/json') {
    req.on('data', (data) => {
      const userInfo = JSON.parse(data.toString());
      req.body = userInfo;
    })
    req.on('end', () => {
      next();
    })
  } else {
    next();
  }
})
app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登錄成功~");
});

適用express內(nèi)置的中間件或者使用body-parser來完成:

app.use(express.json());
app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登錄成功~");
});

方式四:通過post請(qǐng)求中

body的x-www-form-urlencoded格式;

解析application/x-www-form-urlencoded:

可以使用express自帶的 urlencoded函數(shù)來作為中間件:

傳入的extended用于表示使用哪一種解析方式:

  • true:使用qs第三方模塊;
  • false:使用querystring內(nèi)置模塊;
app.use(express.json());
app.use(express.urlencoded({extended: true}));

app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登錄成功~");
});

方式五:通過post請(qǐng)求中的form-data格式;

通過any借助multer去解析一些form-data中的普通數(shù)據(jù):

app.use(upload.any());
app.use('/login', (req, res, next) => {
  console.log(req.body);
});

響應(yīng)方式

end()類似于http中的response.end方法;

res.end("獲取成功~")

json()json方法中可以傳入很多的類型:

object、array、string、boolean、number、null等,都會(huì)被轉(zhuǎn)換成json格式返回

res.json({name:"liyignxia",password:"123456"});

status()設(shè)置狀態(tài)碼

res.status(200);

路由的使用

使用express.Router來創(chuàng)建一個(gè)路由處理程序:一個(gè)Router實(shí)例擁有完整的中間件和路由系統(tǒng);

// 用戶相關(guān)的處理
const userRouter = express.Router();

userRouter.get('/', (req, res, next) => {
  res.end("用戶列表");
});

userRouter.post('/', (req, res, next) => {
  res.end("創(chuàng)建用戶");
});

userRouter.delete('/', (req, res, next) => {
  res.end("刪除用戶");
});

app.use('/users', userRouter);

靜態(tài)資源服務(wù)器

Node也可以作為靜態(tài)資源服務(wù)器,并且express給我們提供了方便部署靜態(tài)資源的方法;

const express = require('express');
const app = express();
app.use(express.static('./build'));
app.listen(8000, () => {
  console.log("靜態(tài)服務(wù)器啟動(dòng)成功~");
})

錯(cuò)誤處理方式

app.use((req, res, next) => {
  next(new Error("USER DOES NOT EXISTS"));
});
app.use((err, req, res, next) => {
  const message = err.message;
  switch (message) {
    case "USER DOES NOT EXISTS":
      res.status(400).json({message})
  }
  res.status(500)
})
您可能感興趣的文章:
  • node+express框架中連接使用mysql(經(jīng)驗(yàn)總結(jié))
  • NodeJs中express框架的send()方法簡(jiǎn)介
  • Node.js的Express框架使用上手指南
  • Nodejs express框架一個(gè)工程中同時(shí)使用ejs模版和jade模版
  • NodeJS Express框架中處理404頁(yè)面一個(gè)方式

標(biāo)簽:雙鴨山 錫林郭勒盟 襄陽(yáng) 莆田 遵義 鄂爾多斯 丹東 哈爾濱

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Node后端Express框架安裝及應(yīng)用》,本文關(guān)鍵詞  Node,后端,Express,框架,安裝,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Node后端Express框架安裝及應(yīng)用》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Node后端Express框架安裝及應(yīng)用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国内精品亚洲| 亚洲欧美激情一区二区| 久久精品精品电影网| 日日夜夜天天操| 欧美va在线观看| 国产精品自拍区| 国产精品国产三级国产专区53| 国产91久久精品一区二区| 91亚洲精华国产精华精华液| 亚洲一区二区自拍偷拍| 午夜日韩在线| 国产精品x453.com| 日韩中文字在线| 日韩精品中文字幕一区二区| 国产精品亚洲成人| 欧美激情视频一区二区| 国产主播精品在线| 黑森林福利视频导航| 亚洲精选国产| 天天干天天草天天| xxxx性bbbb欧美野外| 欧美日韩在线不卡视频| 亚洲无线码在线一区观看| 欧美激情自拍偷拍| 免费观看国产视频| 26uuu国产| 日日av拍夜夜添久久免费| 不卡的av影片| 国产精品美女一区| 国产不卡一区二区视频| 黄色激情在线视频| 国产一区二区三区四区在线观看| 高清欧美电影在线| 视频福利在线| 久久久久观看| 国产激情在线观看| 久久99蜜桃精品久久久久小说| 欧美孕妇与黑人孕交| 欧美一级黄色影院| 欧美三区不卡| 久久伊人免费视频| 国产精品无圣光一区二区| 成人黄色在线视频| 久一视频在线观看| 亚洲欧美精品aaaaaa片| 亚洲天堂av综合网| 日本dhxxxxxdh14日本| 在线免费观看电影网站入口| 天天射天天综合网| 日本一二三四高清不卡| 国产一区激情在线| 国产资源第一页| 伊人网综合视频| 久久影视电视剧免费网站清宫辞电视| 日韩欧美色视频| 亚洲色图在线观看| 欧美日韩综合在线观看| 超碰91人人草人人干| 亚洲韩国一区二区三区| 久久国产精品99久久久久久老狼| 99精品国产高清一区二区| 亚洲区一区二区| 性猛交ⅹ×××乱大交| 国内精品国语自产拍在线观看| 2018av在线| 少妇特黄a一区二区三区| 综合欧美国产视频二区| 九九在线精品视频| www久久日com| 午夜精品久久久久久久第一页按摩| 精品一区日韩成人| 国产视频一区二区视频| 欧美成年人视频网站| 国语自产精品视频在免费| 日韩影视精品| 欧美一级在线观看| 免费国产一区| 久久人人爽亚洲精品天堂| 日本免费www| 在线观看视频欧美| 国产精品人人爽人人做我的可爱| 蜜桃色永久入口| 日韩久久精品电影| 国产午夜精品美女毛片视频| 国产精品一区二区久久精品爱涩| 欧美欧美黄在线二区| 日本三区在线观看| 精品国产精品久久一区免费式| 欧美午夜小视频| 亚洲人成网站77777在线观看| 亚洲欧美一二三| 超碰免费公开在线| 亚洲一区二区少妇| 精品国产av色一区二区深夜久久| 日韩欧美在线国产| 亚洲免费电影在线观看| 鲁大师私人影院在线观看| 欧美一区二区三区电影在线观看| 日韩av免费看网站| 久久蜜桃一区二区| 欧洲猛交xxxx乱大交3| 一级做a爰片毛片| 国产黄色片免费在线观看| 国产精品一二一区| 欧美成a人片在线观看久| 天天爱天天做色综合| 无码少妇精品一区二区免费动态| 国产精品高清无码| 欧美婷婷六月丁香综合色| 日韩成人a**站| 你懂得视频网站| 免费极品av一视觉盛宴| 超碰在线无需免费| 2019国内自拍| 久久精品女同亚洲女同13| 精品人妻一区二区三区麻豆91| 开心色怡人综合网站| 制服诱惑一区二区| 激情都市亚洲| 日日摸夜夜爽人人添av| 中文字幕乱码在线播放| 91免费视频污| 国产一区二区高清在线| 北岛玲一区二区三区四区| 一级片aaaa| 激情五月婷婷小说| 精品一区二区中文字幕| 加勒比av一区二区| 国产传媒欧美日韩| 女同激情久久av久久| 中文字幕视频二区| 波多野结衣在线观看一区二区三区| 男女啪啪免费观看| 婷婷激情综合网| 国产又大又粗又长| 亚洲天堂网中文字| 波多野吉衣在线视频| 搞黄视频在线观看| 亚洲专区区免费| 亚洲第一色av| 日本久久一区| 美女久久网站| 激情欧美日韩一区| 日韩中文字幕精品视频| 污污网站免费观看| 亚洲第一区中文字幕| 69堂精品视频在线播放| 国产h片在线观看| 全国男人的天堂网| 欧美激情视频网| a级片在线观看视频| 亚洲国产精品一| 91成人精品| 白丝女仆被免费网站| 成人欧美一区二区三区黑人麻豆| 日韩精品1区2区| 男女交配网站| 91麻豆精品91久久久久同性| 美女搞黄视频在线观看| xxxx国产精品| 久操免费在线视频| 日本三级日本三级日本三级极| 91丝袜美腿美女视频网站| 草草久视频在线观看电影资源| 色屁屁一区二区| 日韩国产高清一区| 欧美午夜影院一区| 三妻四妾的电影电视剧在线观看| 三级毛片在线免费看| 青青草精品视频| 亚洲精品动态| 影音先锋男人资源站| 久久亚洲欧美| 亚洲精品乱码久久久久久蜜桃麻豆| 91午夜精品亚洲一区二区三区| 日韩欧美成人精品| 成人中文字幕在线播放| 在线免费观看你懂的| 超薄肉色丝袜足j调教99| jizz国产免费| 欧美一级大片视频| 亚洲精品综合一区二区三区| 中文字幕精品一区二区三区在线| 青青青国产在线| 国产一区二区免费视频| 永久555www成人免费| 精品无人区一区二区三区竹菊| 亚洲欧美成人在线| 国产精品欧美综合亚洲| 欧美aⅴ一区二区三区视频| 一级少妇精品久久久久久久| 国产丝袜不卡| 国产精品传媒精东影业在线| 一区二区三区国产好| 亚洲日本护士毛茸茸| 黄a大片av永久免费| 欧美aⅴ在线观看| 亚洲欧洲av在线| 日日摸日日碰夜夜爽av| 亚洲三级网站| 夜夜嗨av一区二区三区四季av| 日本搞黄视频| 欧美丰满少妇xxxbbb| 26uuu另类欧美亚洲曰本| 激情网址大全| 蝌蚪91视频| 黄色一级视频片| 亚洲国产精品久久人人爱| 男女性色大片免费观看一区二区| 女人色偷偷aa久久天堂| 免费看黄色一级大片| 2024国产精品视频| 欧美激情综合在线| 四虎永久免费地址| 久久人人爽人人人人片| 久久av最新网址| 女明星视频黄又免费| 公侵犯人妻一区二区三区| 欧美日韩午夜视频在线观看| 国产高潮免费视频| 国产专区一区二区| 在线高清一区| 男操女在线观看| 日本欧洲国产一区二区| 日韩av成人在线| 在线观看日韩www视频免费| 亚洲va在线va天堂va偷拍| 欧美极品jizzhd欧美18| 美女www一区二区| 国产欧美日韩综合精品二区| 亚洲色图88| 99国产精品99久久久久久| 性欧美成人播放77777| 日本888xxxx| 在线视频在线视频7m国产| 性欧美成人播放77777| 天天射天天色天天干| 欧美aaa一级| 777亚洲妇女| 国产你懂的在线观看| 欧美videos另类齐全| 国产日韩综合av| 美女视频第一区二区三区免费观看网站| 国产一级二级三级精品| 不卡av免费在线观看| 婷婷久久综合九色综合99蜜桃| 不卡中文字幕在线| 9久久9毛片又大又硬又粗| 精品视频在线观看免费观看| 国产一区二区在线免费播放| 九七影院97影院理论片久久| 伊人成人222| 欧美一卡二卡三卡四卡| 日日夜夜亚洲精品| 2020国产在线| 亚洲精品国产一区二区| 亚洲小说图片视频| 日本中文字幕在线2020| 亚洲爱情岛论坛永久| 欧美黑人xxxx猛牲大交| 精品国产人成亚洲区| 激情网站五月天| 欧美视频在线观看网站| 日韩影片在线观看| 奇米四色…亚洲| 欧美—级a级欧美特级ar全黄| 欧美日韩亚洲综合在线| av中文字幕av| 国产成人毛片| 免费成人美女女在线观看| 2014亚洲天堂| brazzers欧美最新版视频| 久久精品国产亚洲av香蕉| 亚洲香蕉网站| 久久人体大尺度| 无码日本精品xxxxxxxxx| 亚洲jjzzjjzz在线观看| 搞黄在线观看| 欧美亚洲自偷自偷| 亚洲另类欧美自拍| 日韩视频免费观看| 岛国精品在线播放| 97激碰免费视频| 国产精品白浆一区二小说| 日本一区二区三区四区在线视频| 超碰福利在线观看| 日韩av在线天堂网| 中文字幕第九页| 久久性爱视频网站| av资源在线看| 精品欠久久久中文字幕加勒比| 欧美日韩精品一区二区三区视频播放| 欧美高清视频免费观看| 无限资源日本好片| 国内精品久久久久久久久| 亚洲精品大尺度| 亚洲国产精久久久久久久| 亚洲精品在线观看免费| 国产另类ts人妖一区二区| 99re8这里有精品热视频免费| 天堂网在线资源| 亚洲欧美国产精品va在线观看| 亚洲人成在线观看| 制服丝袜中文字幕亚洲| 日韩欧美不卡视频| 天天影视色香欲综合网老头| 日本v片在线高清不卡在线观看| 最新中文字幕av专区| 国产日本在线观看| 香蕉视频国产在线观看| 91看片在线观看| 免费黄在线观看| 日韩一区二区高清视频| 欧美久久精品| 欧美 日本 亚洲| 亚洲国产成人在线观看| 在线不卡免费av| 免费国产成人av| 欧美精品粉嫩高潮一区二区| 国产美女久久| 黄色成人在线| av电影不卡在线观看| 日韩在线xxx| 亚洲最大成人在线| 欧美aa免费在线| 一区二区三区四区在线看| 亚洲美女动态图120秒| 亚洲性av在线|