express是什么栅屏?
- express是Node.js服務(wù)器的框架逛艰。
- express是一個(gè)Node.js的模塊蘑志。
1金砍、express()
定義
- Express()是該框架的核心函數(shù)址否。
-
express()
用于創(chuàng)建一個(gè)APP(Node.js + Express)餐蔬。 -
express()
函數(shù)是一個(gè)頂級函數(shù)。
語法
const express = require('express')//引入模塊
const app = express()//暴露函數(shù) 成為頂級函數(shù)
express()的方法
- express.json()
- express.static()
- express.Router()
- express.urlencoded()
返回值
示例
2佑附、 app.get()
定義
- app:是express構(gòu)造實(shí)例對象樊诺,表示一個(gè)應(yīng)用程序(app)。
- Get():處理get請求音同;
app.get()
方法通過回調(diào)函數(shù)處理GET請求词爬。
官方:通過回調(diào)函數(shù)把請求路由到指定路徑。
語法
app.get(path,callback)
app.get('請求地址',回調(diào)函數(shù)) //=> 中間件函數(shù)(勾子函數(shù))
app.get('/', (req, res) => {
console.log(req) //req(請求對象)就是Node.js的request對象
console.log(res)//res(響應(yīng)對象)就是Node.js的response對象
})
返回值
示例
APP.post()
- 定義:
- 語法:
3权均、app.use()
定義
app.use()
在指定路徑上掛載中間件函數(shù)顿膨。
語法
app.use([path,] callback [, callback...])
app.use('路徑', 回調(diào)函數(shù))
app.use('/about',() => {})
app.use(() => {}) //不寫路徑,那意味著所有路徑都會執(zhí)行回調(diào)
返回值
示例
4叽赊、app.listen()
定義
app.listen()
用于為app綁定監(jiān)聽恋沃,監(jiān)聽主機(jī)端口是否有請求進(jìn)來。此方法與 Node 的 http.Server.listen() 相同必指。
- 一般網(wǎng)站默認(rèn)的端口80(可省略)
- 在開發(fā)中囊咏,端口號
語法
app.listen([port[, host[, backlog]]][, callback])
app.listen(端口號,主機(jī)名,回調(diào)函數(shù))
返回值
示例
5、res.sendFile()
定義
按照指定路徑發(fā)送文件html響應(yīng)數(shù)據(jù)(作為響應(yīng)數(shù)據(jù))塔橡。
- 根據(jù)文件擴(kuò)展名設(shè)置 Content-Type 響應(yīng) HTTP 標(biāo)頭字段梅割。
- 除非在選項(xiàng)對象中設(shè)置了根選項(xiàng),否則路徑必須是文件的絕對路徑谱邪。
語法
res.sendFile(path [, options] [, fn])
res.sendFile('路徑' {選項(xiàng)對象},回調(diào)函數(shù))
- path必須是一個(gè)絕對路徑
- path如果是一個(gè)相對路徑炮捧,那么你必須在選項(xiàng)對象中設(shè)置根選項(xiàng)。
返回值
示例
options
定義
options
就是選項(xiàng)對象惦银。
- 它是一個(gè)對象
- 對象里存儲的是一些屬性參數(shù)咆课。
{
path:'',
chaset: 'utf-8'
}
6、 res.status()
定義
設(shè)置響應(yīng)的 HTTP 狀態(tài)碼扯俱。支持鏈?zhǔn)秸{(diào)用
語法
res.status(403).end()
res.status(400).send('Bad Request')
res.status(400).sendFile('/absolute/path/404.png')
返回值
返回響應(yīng)對象书蚪。
示例
7、ejs是什么迅栅?
- ejs是 Embedded JavaScript templating的縮寫殊校,
- ejs的意思:嵌入js的HTML模版(不是嵌入到
<script>
里)。 - ejs是面向服務(wù)端的
- ejs是在服務(wù)端把js嵌入到html頁面里
- 服務(wù)端解析ejs語法 => 翻譯成html
- 把編譯后的html返給瀏覽器端
- ejs實(shí)現(xiàn)的功能類似于php實(shí)現(xiàn)的功能:動(dòng)態(tài)渲染數(shù)據(jù)到HTML頁面里读存。
- JS是面向?yàn)g覽器端的腳本語言为流。
- PHP是面向服務(wù)端的腳本語言呕屎。
- 為什么能夠解析PHP,因?yàn)榉?wù)端安裝了PHP軟件
//ejs代碼
<ul>
<% users.forEach(function(user){ %>
<%- include('user/show', {user: user}); %>
<% }); %>
</ul>
8敬察、 app.set()
定義
app.set()
方法用于:1.存儲自定義值 2.配置服務(wù)器行為秀睛。
服務(wù)器行為有些特殊的字段,用于配置服務(wù)器行為:
9莲祸、 res.render()
定義
render()
方法用于編譯ejs模版蹂安,把編譯后的html代碼發(fā)送給客戶端。
語法
res.render(view [, locals] [, callback])
res.render(視圖,{選項(xiàng)},回調(diào)函數(shù))
再談url
localhost.com:3000//主機(jī)名
3000//端口號
zhaolusi.com//主機(jī)名
5000//端口號