摘要:中文官網(wǎng)快速入門安裝項(xiàng)目中引入得到服務(wù)器實(shí)例綁定服務(wù)器接受請(qǐng)求事件,并且添加處理回調(diào)函數(shù)綁定服務(wù)端口,啟動(dòng)服務(wù)器運(yùn)行項(xiàng)目利用框架可以減少我們的代碼量,比起之前使用核心模塊構(gòu)建服務(wù)器代碼排版更直觀。
Express框架是一款簡(jiǎn)潔而靈活的node.js web應(yīng)用框架。前面我們自己手動(dòng)創(chuàng)建服務(wù)器在Express中就是一個(gè)API的事情,這就使得我們更加注重業(yè)務(wù)的功能和開發(fā)效率上,不必糾結(jié)過多底層的事情。
快速入門Express中文官網(wǎng):Express
安裝:npm install express --save
項(xiàng)目中引入:
const express = require("express")
// 得到server(服務(wù)器)實(shí)例
const app = express()
// 綁定服務(wù)器接受請(qǐng)求事件,并且添加處理回調(diào)函數(shù)
app.get("/", (req, res) => res.send("Hello World!"))
// 綁定服務(wù)端口,啟動(dòng)服務(wù)器
app.listen(3000, () => console.log("Example app listening on port 3000!"))
運(yùn)行項(xiàng)目: node app.js
利用express框架可以減少我們的代碼量,比起之前使用node核心模塊http構(gòu)建服務(wù)器代碼排版更直觀。express底層使用的就是http核心模塊的API。如果要處理客戶端不同請(qǐng)求路徑,我們可以往下羅列多個(gè)app.get()方法,無需再使用if...else...來判斷。express也不用我們?cè)O(shè)置響應(yīng)頭的Content-Type和中文編碼格式,會(huì)底層自動(dòng)識(shí)別添加,可以看下面代碼:
const express = require("express")
const app = express()
app.get("/", (req, res) => {
res.send("您好,中國")
})
app.get("/login", (req, res) => {
res.send("登錄
")
})
app.get("/register", (req, res) => {
res.send("注冊(cè)
")
})
app.listen("3000", () => {
console.log("running...")
})
express中的靜態(tài)服務(wù) 前言
在web網(wǎng)站后端開發(fā)的過程中,我們往往需要把一些靜態(tài)文件夾暴露出去,用戶可以根據(jù)url地址去訪問到其中的內(nèi)容,這些靜態(tài)文件往往也稱之為公共資源,利用express框架可以方便地托管靜態(tài)文件。
本章節(jié)對(duì)應(yīng)的API地址:Express 托管靜態(tài)文件
在項(xiàng)目中新建一個(gè)公共文件夾(公共資源):public
使用express的靜態(tài)文件服務(wù)暴露公共資源
方法一:(常用)
app.use("/public/", express.static("./public"))
第一個(gè)參數(shù)指定用戶必須以/public/開頭的url地址才能訪問到靜態(tài)文件夾下的具體對(duì)應(yīng)文件資源。express.static()里面?zhèn)饕粋€(gè)相對(duì)路徑,指定要暴露的文件。
let express = require("express")
let app = express()
app.use("/public/", express.static("./public"))
app.listen(3000, ()=> {
console.log("running...")
})
方法二:
app.use(express.static("./public"))
app.use()方法省略第一個(gè)參數(shù),用戶無需以/public/開頭,可以直接以暴露文件夾下對(duì)應(yīng)文件地址訪問對(duì)應(yīng)資源,看例子
let express = require("express")
let app = express()
app.use(express.static("./public"))
app.listen(3000, ()=> {
console.log("running...")
})
方法三:
app.use("/static/", express.static("./public"))
第一個(gè)參數(shù)為我們自己指定的任意文件名,用戶訪問公共資源,需要以我們指定的文件名開頭的url地址,看例子
let express = require("express")
let app = express()
app.use("/static/", express.static("./public"))
app.listen(3000, ()=> {
console.log("running...")
})
express結(jié)合art-template模板引擎 前言
前面的學(xué)習(xí)我們已經(jīng)知道如何在Node.js中使用art-template模板引擎,同樣在express中也可以使用art-template。
安裝相應(yīng)的第三方包
npm install --save art-template npm install --save express-art-template
注意:這里的express-art-template依賴了art-template模塊,所以必須連同art-template模板一起安裝下來。
項(xiàng)目中引入express,配置express-art-template模板引擎
let express = require("express")
// 得到服務(wù)器實(shí)例對(duì)象
let app = express()
// 配置express-art-template模板引擎,配置之后會(huì)在服務(wù)器請(qǐng)求事件的回調(diào)處理函數(shù)response對(duì)象中有一個(gè)render方法,用于渲染模板字符串返回渲染后的結(jié)果。
app.engine("art", require("express-art-template"))
// 為服務(wù)器綁定get請(qǐng)求事件,添加相應(yīng)處理回調(diào)函數(shù)
app.get("/", (req, res) => {
res.render("login.art", {
title: "這里是登陸頁"
})
})
// 綁定服務(wù)器監(jiān)聽端口號(hào),啟動(dòng)服務(wù)器
app.listen(3000, () => {
console.log("running...")
})
這里的app.engine("art", require("express-art-template"))為必須項(xiàng),是配置模板引擎的關(guān)鍵所在,項(xiàng)目中雖然沒有引入art-template模塊,但是由于依賴關(guān)系,所以也必須一同下載安裝。app.engine的第一個(gè)參數(shù)為解析模板字符文件的后綴名,art表示模板文件必須以.art為擴(kuò)展名,可以修改為常見的.html格式。res.render()第一個(gè)參數(shù)為要解析的模板字符串文件,文件的擴(kuò)展名與前面的app.engine()第一個(gè)參數(shù)一致,模板文件會(huì)默認(rèn)去當(dāng)前同級(jí)目錄的views文件夾下查找,所以無需寫文件路徑,也不能寫文件路徑,因此,我們經(jīng)常把一些與頁面視圖相關(guān)的文件都放在views文件夾下,這也是一種好的編程習(xí)慣。第二個(gè)參數(shù)為模板配置對(duì)象。如果需要修改res.render()默認(rèn)查找模版文件的位置,比如我希望它去別的文件夾下找,不是views文件夾,可以使用下面配置語句:
app.set("views", "替換的文件路徑") // 第一個(gè)參數(shù)必須為:views
啟動(dòng)服務(wù)后看到結(jié)果
后語
本博文出至于我的GitHub上Node學(xué)習(xí)教程資料,如果需要demo源碼的小伙伴可以去GitHub上clone,歡迎小伙伴們star,你們的點(diǎn)贊是我持續(xù)更新的動(dòng)力。
pubdreamcc原創(chuàng),歡迎轉(zhuǎn)載!
倉庫地址:Node學(xué)習(xí)圖文教程
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/7407.html
摘要:安裝相應(yīng)第三方依賴創(chuàng)建靜態(tài)資源文件夾我們?cè)谖募A中創(chuàng)建一個(gè)名為文件夾,用來存放靜態(tài)文件,也就是公開的資源文件。寫在前面 小伙伴們大家好,我是你們的pubdreamcc,接著前面的學(xué)習(xí),這篇博文出至于我的GitHub倉庫:Node學(xué)習(xí)教程資料,如果你覺得對(duì)你有幫助,歡迎star,你們的點(diǎn)贊是我持續(xù)更新的動(dòng)力,謝謝! Node.js學(xué)習(xí)教程資料:GitHub 前言 我們?cè)谥暗膎ode.js...
摘要:今天看到了微信官方推出的一個(gè)瀏覽器插件,用來調(diào)試微信后臺(tái)和頁面的,挺好的。這個(gè)是根據(jù)別人的文章總結(jié)的,時(shí)間戳隨機(jī)數(shù)生成簽名將三者進(jìn)行加密與簽名進(jìn)行對(duì)比之后每次都會(huì)進(jìn)行身份校驗(yàn)。然而后面還有更深的坑。 原文摸索中遇到的一些坑,雖然很簡(jiǎn)單,但新手還是會(huì)被坑到,就稍微記錄一下吧,也當(dāng)學(xué)習(xí)手冊(cè),最好去了解一下express,不是很難,這邊只是簡(jiǎn)單的配置,更高級(jí)的接口還是去看文檔,模塊或者自己實(shí)...
摘要:的網(wǎng)站仍然使用有漏洞庫上周發(fā)布了開源社區(qū)安全現(xiàn)狀報(bào)告,發(fā)現(xiàn)隨著開源社區(qū)的日漸活躍,開源代碼中包含的安全漏洞以及影響的范圍也在不斷擴(kuò)大。與應(yīng)用安全是流行的服務(wù)端框架,本文即是介紹如何使用以及其他的框架來增強(qiáng)應(yīng)用的安全性。 showImg(https://segmentfault.com/img/remote/1460000012181337?w=1240&h=826); 前端每周清單專注...
摘要:又將整個(gè)文藝類閱讀系統(tǒng)的業(yè)務(wù)劃分為兩大部分,分別是面向管理員和合作作者的后臺(tái)管理系統(tǒng)和面向用戶的移動(dòng)端,系統(tǒng)的需求分析將圍繞這兩部分進(jìn)行展開。 效果展示 showImg(https://user-gold-cdn.xitu.io/2018/8/26/16576a709bd02f5f?w=1409&h=521&f=gif&s=30128195); showImg(https://user...
摘要:又將整個(gè)文藝類閱讀系統(tǒng)的業(yè)務(wù)劃分為兩大部分,分別是面向管理員和合作作者的后臺(tái)管理系統(tǒng)和面向用戶的移動(dòng)端,系統(tǒng)的需求分析將圍繞這兩部分進(jìn)行展開。 效果展示 showImg(https://user-gold-cdn.xitu.io/2018/8/26/16576a709bd02f5f?w=1409&h=521&f=gif&s=30128195); showImg(https://user...
閱讀 3138·2021-11-24 10:24
閱讀 2930·2021-11-11 16:54
閱讀 3066·2021-09-22 15:55
閱讀 2027·2019-08-30 15:44
閱讀 1901·2019-08-29 18:41
閱讀 2761·2019-08-29 13:43
閱讀 3053·2019-08-29 12:51
閱讀 1171·2019-08-26 12:19