国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端工程化:express服務(wù)端開發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了前端工程化:express服務(wù)端開發(fā)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、express基本使用

1. 安裝依賴

npm i -S express

2. 創(chuàng)建服務(wù)

// 創(chuàng)建express服務(wù)分三步

// 1. 創(chuàng)建實(shí)例化服務(wù)
const express = require('express');
const app = express();

// 2. 攔截路由
app.get('/',function(req,res){
  res.send('<html><body><div style="color:red">111</div></body></html>')
})

// 3. 啟動(dòng)實(shí)例化服務(wù)
const port = 8080;
app.listen(port, function(){
  console.log('------服務(wù)啟動(dòng)成功');
})

3. 啟動(dòng)服務(wù)

node app.js文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-422904.html

2、express中間件和異常

1. 中間件分3種

  1. 全局中間件:第一個(gè)參數(shù)是回調(diào)函數(shù)時(shí),則針對(duì)所有請(qǐng)求生效
  2. 路由中間件:第一個(gè)參數(shù)是匹配路由,第二個(gè)參數(shù)為回調(diào)函數(shù)
  3. 異常中間件:回調(diào)函數(shù)包含四個(gè)參數(shù)

2. 異常捕獲有3種

  1. 異常中間件:回調(diào)函數(shù)包含四個(gè)參數(shù)
  2. 全局異常捕獲
  3. 全局Promise異常捕獲
// express服務(wù)分三步

// 1. 創(chuàng)建實(shí)例化服務(wù)
const express = require('express');
const app = express();


// 中間件分3種
// 1. 全局中間件:第一個(gè)參數(shù)是回調(diào)函數(shù)時(shí),則針對(duì)所有請(qǐng)求生效
// 2. 路由中間件:第一個(gè)參數(shù)是匹配路由,第二個(gè)參數(shù)為回調(diào)函數(shù)
// 3. 異常中間件:回調(diào)函數(shù)包含四個(gè)參數(shù)

// 中間件:處理請(qǐng)求的業(yè)務(wù)邏輯
// 前置中間件--全局中間件
app.use(function (req, res, next) {
  console.log('前置中間件:middleware');
  next()
})
// 路由中間件
app.use('/test',function (req, res, next) {
  console.log('路由中間件:middleware');
  res.send('test')
  next()
})

// 2. 攔截路由
app.get('/',function(req, res, next){
  console.log('攔截路由');
  res.send('<html><body><div style="color:red">111</div></body></html>')
  next();
})

// 后置中間件--全局中間件
app.use(function (req, res, next) {
  console.log('后置中間件:middleware');
  throw new Error('錯(cuò)誤信息')
})

// 異常中間件
// 注意:
// 1. 異常中間件全局只包含一個(gè)
// 2. 異常中間件可以傳遞給普通中間件
// 3. 異常中間件需要放在所有中間件的最后
// 4. 異常中間件只能捕獲回調(diào)函數(shù)中的異常,比如Promise.then(throw new Error())這種就捕獲不到了
app.use(function (err, req, res, next) {
  console.log('異常中間件:', err.message)
  next()
})

// 全局異常捕獲
process.on('uncaughtException', function (err) {
  console.log('全局異常捕獲', err.message);
})
// 全局Promise異常捕獲
process.on('unhandledRejection', function (err) {
  console.log('全局Promise異常捕獲', err.message);
})

// 3. 啟動(dòng)實(shí)例化服務(wù)
const port = 8080;
app.listen(port, function(){
  console.log('------服務(wù)啟動(dòng)成功');
})

3、https服務(wù)和靜態(tài)服務(wù)

1. https服務(wù)

  1. 需要購(gòu)買或者找免費(fèi)的證書,證書分公鑰和私鑰。

2. 靜態(tài)服務(wù)

  1. 通過(guò)路由中間件,將static文件夾下的所有文件轉(zhuǎn)為靜態(tài)資源
  2. 訪問(wèn)方式:ip:port/static/index.html
// express服務(wù)分三步

// 1. 創(chuàng)建實(shí)例化服務(wù)
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();


// 中間件分3種
// 1. 全局中間件:第一個(gè)參數(shù)是回調(diào)函數(shù)時(shí),則針對(duì)所有請(qǐng)求生效
// 2. 路由中間件:第一個(gè)參數(shù)是匹配路由,第二個(gè)參數(shù)為回調(diào)函數(shù)
// 3. 異常中間件:回調(diào)函數(shù)包含四個(gè)參數(shù)

// 中間件:處理請(qǐng)求的業(yè)務(wù)邏輯
// 前置中間件--全局中間件
app.use(function (req, res, next) {
  console.log('前置中間件:middleware');
  next()
})
// 路由中間件
app.use('/test',function (req, res, next) {
  console.log('路由中間件:middleware');
  res.send('test')
  next()
})
// 將static下的所有文件都轉(zhuǎn)換為靜態(tài)文件
// 訪問(wèn)方式:ip:port/static/index.html
app.use('/static', express.static('./static'))


// 2. 攔截路由
app.get('/',function(req, res, next){
  console.log('攔截路由');
  res.send('<html><body><div style="color:red">111</div></body></html>')
  next();
})

// 后置中間件--全局中間件
app.use(function (req, res, next) {
  console.log('后置中間件:middleware');
  throw new Error('錯(cuò)誤信息')
})

// 異常中間件
// 注意:
// 1. 異常中間件全局只包含一個(gè)
// 2. 異常中間件可以傳遞給普通中間件
// 3. 異常中間件需要放在所有中間件的最后
// 4. 異常中間件只能捕獲回調(diào)函數(shù)中的異常,比如Promise.then(throw new Error())這種就捕獲不到了
app.use(function (err, req, res, next) {
  console.log('異常中間件:', err.message)
  next()
})

// 全局異常捕獲
process.on('uncaughtException', function (err) {
  console.log('全局異常捕獲', err.message);
})
// 全局Promise異常捕獲
process.on('unhandledRejection', function (err) {
  console.log('全局Promise異常捕獲', err.message);
})

// 3. 啟動(dòng)實(shí)例化服務(wù)
const port = 8080;
app.listen(port, function(){
  console.log('------服務(wù)啟動(dòng)成功');
})


// 啟動(dòng)一個(gè)https服務(wù)
const httpsPort = 443;
const options = {
  // key:fs.readFileSync('私鑰文件路徑'), // 私鑰
  // cert:fs.readFileSync('公鑰文件路徑') // 公鑰
}
const httpsServer = https.createServer(options, app);
httpsServer.listen(httpsPort, function(){
  console.log('------https服務(wù)啟動(dòng)成功');
})

到了這里,關(guān)于前端工程化:express服務(wù)端開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端工程化實(shí)戰(zhàn):React 模塊化開發(fā)、性能優(yōu)化和組件化實(shí)踐

    前端工程化實(shí)戰(zhàn)是指通過(guò)組織工作流程、使用工具和技術(shù)來(lái)提高前端開發(fā)效率和質(zhì)量的一種方法。常見(jiàn)的前端工程化實(shí)踐包括模塊化開發(fā)、自動(dòng)化構(gòu)建、代碼檢查和測(cè)試、性能優(yōu)化等。下面將簡(jiǎn)要介紹模塊化開發(fā)、性能優(yōu)化和組件化實(shí)踐。 模塊化開發(fā) 在 React 中實(shí)現(xiàn)模塊化開

    2023年04月10日
    瀏覽(100)
  • 前端工程化 搭建私有組件庫(kù) 組件從開發(fā)到發(fā)布私有npm倉(cāng)庫(kù)的全過(guò)程

    前端工程化 搭建私有組件庫(kù) 組件從開發(fā)到發(fā)布私有npm倉(cāng)庫(kù)的全過(guò)程

    前言 基于Vue3.0 + TS的組件從開發(fā)組件庫(kù)到發(fā)布私有npm倉(cāng)庫(kù)的全過(guò)程 環(huán)境 這里列出本文所使用的環(huán)境版本 vue 3.0 vue/cli 4.5.9 nodeJs 14.15.1 npm 6.14.8 vue --version @vue/cli 4.5.9 npm -v 6.14.8 node -v v14.15.1 步驟 創(chuàng)建項(xiàng)目 使用 vue-cli 創(chuàng)建一個(gè) vue3 項(xiàng)目,假設(shè)項(xiàng)目名為 avatar-ui-vue vue create avatar-u

    2024年02月02日
    瀏覽(980)
  • 前端工程化詳解——理解與實(shí)踐前端工程化

    前端工程化詳解——理解與實(shí)踐前端工程化

    前言: 前端工程化一直是一個(gè)老生常談的問(wèn)題,不管是面試還是我們?cè)诠咀龌ǘ紩?huì)經(jīng)常提到前端工程化,那么為什么經(jīng)常會(huì)說(shuō)到前端工程化,并沒(méi)有聽過(guò)后端工程化、Java工程化或者Python工程化呢?我們理解的前端工程化是不是一直都是Webpack的性能調(diào)優(yōu),或者是一個(gè)cli工

    2024年02月02日
    瀏覽(102)
  • 為react項(xiàng)目添加開發(fā)/提交規(guī)范(前端工程化、eslint、prettier、husky、commitlint、stylelint)

    為react項(xiàng)目添加開發(fā)/提交規(guī)范(前端工程化、eslint、prettier、husky、commitlint、stylelint)

    因歷史遺留原因,接手的項(xiàng)目沒(méi)有代碼提醒/格式化,包括 eslint、pretttier,也沒(méi)有 commit 提交校驗(yàn),如 husky、commitlint、stylelint,與其期待自己或者同事的代碼寫得完美無(wú)缺,不如通過(guò)一些工具來(lái)進(jìn)行規(guī)范和約束。 eslint 是一個(gè)代碼校驗(yàn)工具,用來(lái)規(guī)范項(xiàng)目代碼風(fēng)格。 初始化 通

    2024年02月14日
    瀏覽(93)
  • 前端工程化

    前端工程化

    手把手帶你走進(jìn)Babel的編譯世界 - 掘金 (juejin.cn) 我們所寫的代碼轉(zhuǎn)換為機(jī)器能識(shí)別的一種 樹形結(jié)構(gòu), 本身是由一堆節(jié)點(diǎn)(Node)組成,每個(gè)節(jié)點(diǎn)都表示源代碼中的一種結(jié)構(gòu)。 不同結(jié)構(gòu)用類型(Type)來(lái)區(qū)分,常見(jiàn)的節(jié)點(diǎn)類型有Identifier(標(biāo)識(shí)符),Expression(表達(dá)式),VariableDeclarat

    2023年04月11日
    瀏覽(100)
  • 前端工程化-VUE

    前端工程化-VUE

    高效的開發(fā)離不開基礎(chǔ)工程的搭建。本章主要介紹如何使用Vue進(jìn)行實(shí)際SPA項(xiàng)目的開發(fā),這里使用的是目前熱門的JavaScript應(yīng)用程序模塊打包工具Webpack,進(jìn)行模塊化開發(fā)、代碼編譯和打包。 Vue腳手架指的是Vue-cli,它是一個(gè)專門為單頁(yè)面應(yīng)用快速搭建繁雜程序的腳手架,它可以輕

    2024年02月08日
    瀏覽(98)
  • 什么是前端工程化?

    前端工程化是一種思想,而不是某種技術(shù)。主要目的是為了提高效率和降低成本,也就是說(shuō)在開發(fā)的過(guò)程中可以提高開發(fā)效率,減少不必要的重復(fù)性工作等。 tip 現(xiàn)實(shí)生活舉例 建房子誰(shuí)不會(huì)呢?請(qǐng)幾個(gè)工人一上來(lái)就開始弄,在建筑的過(guò)程中缺了材料就叫個(gè)工人去買,發(fā)現(xiàn)工期

    2024年02月15日
    瀏覽(97)
  • 前端工程化-NPM

    前端工程化-NPM

    NPM代表npmjs.org這個(gè)網(wǎng)站,這個(gè)站點(diǎn)存儲(chǔ)了很多Node.js的第三方功能包。 NPM的全稱是Node Package Manager,它是一個(gè)Node.js包管理和分發(fā)工具,已經(jīng)成為非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)。它可以讓JavaScript開發(fā)者能夠更加輕松地共享代碼和共用代碼片段,并且通過(guò)NPM管理需要分享的代

    2024年02月09日
    瀏覽(310)
  • 前端工程化相關(guān)

    前端工程化相關(guān)

    知道軟件包名,拿到源碼或者路徑的方法 在瀏覽器輸入以下內(nèi)容,就可以找到你想要的。。。 unpkg.com/輸入包名 ESM特性清單: 自動(dòng)采取嚴(yán)格模式,忽略“use?strict” 每個(gè)ESM模塊都是單獨(dú)的私有作用域; ESM是通過(guò)CORS去請(qǐng)求外部JS模塊的 ESM的script標(biāo)簽會(huì)延遲執(zhí)行腳本,就要有

    2024年01月17日
    瀏覽(307)
  • Ajax及前端工程化

    Ajax及前端工程化

    Ajax:異步的js與xml。 作用: 1、通過(guò)ajax給服務(wù)器發(fā)送數(shù)據(jù),并獲得其響應(yīng)的數(shù)據(jù)。 2、可以在不更新整個(gè)網(wǎng)頁(yè)的情況下,與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的技術(shù)。 ?1、準(zhǔn)備數(shù)據(jù)地址 ?2、創(chuàng)建XMLHttpRequest對(duì)象,用于和服務(wù)器交換數(shù)據(jù) ?3、向服務(wù)器發(fā)送請(qǐng)求 ?4、獲取服務(wù)器響

    2024年02月12日
    瀏覽(35)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包