您好,登錄后才能下訂單哦!
這篇“node中的Express框架怎么安裝使用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“node中的Express框架怎么安裝使用”文章吧。
可以理解為是一條路,要遵守一定的規(guī)則,就會給咱們提供很多便利。為了規(guī)范開發(fā)流程,降低開發(fā)難度,提高開發(fā)效率而制定的一套共人們使用的功能模塊或者是編程的約定。
mkdir myapp 創(chuàng)建項目目錄。
cd myapp==>npm init。
npm install express --save (可替換為[-S])。
基本遵循之前的四個步驟:
導(dǎo)入需要使用的express包
創(chuàng)建web實例
定義允許訪問的地址 ( 路由 )
原先的輸出: res.end()
使用express后的輸出: res.send()
啟動服務(wù) (監(jiān)聽端口)
//前提是安裝好express,導(dǎo)包 let express=require('express'); //創(chuàng)建web服務(wù) let app=express(); //配置路由 //監(jiān)聽 get請求 //req 請求對象 //res 響應(yīng)對象 app.get("請求的URL",(req,res)=>{ //邏輯 //向客戶端響應(yīng)數(shù)據(jù) res.send({id:1,name:'張三'}) }); //監(jiān)聽post請求 app.post("請求的URL",(req,res)=>{ //邏輯 }); ...... //開啟服務(wù)器 app.listen(8000,()=>{})
接收發(fā)送請求,分析請求路徑(pathname),分發(fā)到指定的位置。
由 :請求方式+請求路徑
(1)get發(fā)送數(shù)據(jù)
查詢字符串:?key=value&key=value
(2)get接收數(shù)據(jù)
Express中內(nèi)置了一個API,可以直接通過request.query
來獲取。
request.query
// 在express中可以直接通過 request.query 來獲取字符串參數(shù) // http://127.0.0.1:4000/about?name=zhangsan&message=hello app.get('/about',function (request,response) { console.log(request.query); response.send('關(guān)于我'); })
(3)get動態(tài)路由
/path/:id
接受數(shù)據(jù):req.params
(4)post接收數(shù)據(jù)
在Express中沒有內(nèi)置獲取 post 請求體的API,我們需要使用第三方插件 body-parser
安裝 npm install body-parser
配置 body-parser
進行下方代碼的配置,就會在 request 請求對象上就會多出來一個屬性:body 我們就可以直接通過 request.body 來獲取表單 POST 請求體的數(shù)據(jù)了
app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json())
使用
var express = require('express') var bodyParser = require('body-parser') var app = express() app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) app.post('/about',function (request,response) { console.log(request.body); })
(5)post傳遞數(shù)據(jù)
const express = require('express'); const app = express(); app.post('/api/post', function(req, res) { // 直接返回對象 res.send({ name: 'abc' }); }); app.listen('8088', () => { console.log('8088'); });
模板引擎是一個將頁面模板和要顯示的數(shù)據(jù)結(jié)合起來生成HTML頁面的工具。
引入模板引擎設(shè)置模板目錄設(shè)置模板引擎渲染模板
app.render(viewname,data,callback)
function render(tpl,data){ return tpl.replace(/\{\{(\w+)\}\}/g,function(input,words){ return data[words]; }) } var result = render('<h2>{{title}}</h2>',{title:'人生如此美好'})
app.set('views','./views'); //設(shè)置模板存儲位置 app.set('view engine','ejs'); //設(shè)置模板引擎
app.set('views',path.join(__dirname,'views')); //設(shè)置模板存儲位置 app.set('view engine','html'); app.engine('html',require('ejs').renderFile); //使用ejs模板引擎解析html
<% ‘Scriptlet’ 標(biāo)簽, 用于控制流,沒有輸出
<%= 向模板輸出值(帶有轉(zhuǎn)義)
<%- 向模板輸出沒有轉(zhuǎn)義的值
<%# 注釋標(biāo)簽,不執(zhí)行,也沒有輸出
<%% 輸出字面的 ‘<%’
%> 普通的結(jié)束標(biāo)簽
<% code %> //javascript代碼 <%= code %> //顯示替換過html的特殊字符內(nèi)容 <%- code %> //顯示原始html內(nèi)容(支持標(biāo)簽)
<%= code %>
與<%- code %>
的區(qū)別,code為普通字符串兩者沒有區(qū)別,為標(biāo)簽時<%- code %>
會顯示標(biāo)簽效果
包含include
<% include header %> <% include tpl/footer %>
自定義分隔符
app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); var ejs = require('ejs'); ejs.delimiter = '$'; app.engine('ejs',ejs.renderFile);
設(shè)置靜態(tài)托管:app.use( express.static ( ) )
本方法一定要寫在具體的路由監(jiān)聽之前。
app.use(express.static('static')); //讓app實例去使用一些內(nèi)容(常規(guī)的方法,也是一些中間件); //express.static("public")中的參數(shù)是靜態(tài)路由資源所在的目錄的名字 //其還支持虛擬的前綴用于迷惑被人 app.use('/gjsgadjgajdgadgajdga',express.static('static'));
前綴的使用意義:
可以迷惑被人,一定程度上阻止被人猜測我的服務(wù)器的目錄結(jié)構(gòu)可以幫助我們更好的阻止和管理靜態(tài)資源
以上就是關(guān)于“node中的Express框架怎么安裝使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。