欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node中的Express框架詳解

 更新時間:2023年04月22日 08:43:33   作者:憶凡_  
這篇文章主要介紹了node中的Express框架,框架是為了規(guī)范開發(fā)流程,降低開發(fā)難度,提高開發(fā)效率而制定的一套共人們使用的功能模塊或者是編程的約定,需要的朋友可以參考下

今天帶領(lǐng)大家初識一下 Express框架 ;讓我們一起來看看吧

Express框架

Express文檔

1.什么是框架

可以理解為是一條路,要遵守一定的規(guī)則,就會給咱們提供很多便利。為了規(guī)范開發(fā)流程,降低開發(fā)難度,提高開發(fā)效率而制定的一套共人們使用的功能模塊或者是編程的約定。

2.express安裝

  1. mkdir myapp 創(chuàng)建項目目錄。
  2. cd myapp==>npm init。
  3. npm install express --save (可替換為[-S])。 

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

基本遵循之前的四個步驟:

  • 導(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,()=>{})

4.路由

接收發(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');
});

5.模板引擎 

什么是模板引擎

模板引擎是一個將頁面模板和要顯示的數(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('<h1>{{title}}</h1>',{title:'人生如此美好'})

在express中使用模板引擎

app.set('views','./views'); //設(shè)置模板存儲位置
app.set('view engine','ejs'); //設(shè)置模板引擎

設(shè)置模板引擎后綴

app.set('views',path.join(__dirname,'views')); //設(shè)置模板存儲位置
app.set('view engine','html');
app.engine('html',require('ejs').renderFile); //使用ejs模板引擎解析html

ejs的標(biāo)簽

  • <% ‘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);

6.靜態(tài)文件托管

設(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框架詳解的文章就介紹到這了,更多相關(guān)node的Express框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建

    Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建

    本篇文章主要介紹了Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js系列之安裝配置與基本使用(1)

    Node.js系列之安裝配置與基本使用(1)

    這篇文章主要為大家詳細介紹了Node.js系列之安裝配置與基本使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • npm設(shè)置同時從多個包源加載包的方法

    npm設(shè)置同時從多個包源加載包的方法

    本文主要介紹了npm 設(shè)置同時從多個包源加載包的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 簡單實現(xiàn)node.js圖片上傳

    簡單實現(xiàn)node.js圖片上傳

    這篇文章主要為大家詳細介紹了node.js圖片上傳的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 詳解Node.js中的模塊化方法

    詳解Node.js中的模塊化方法

    這篇文章主要為大家介紹了Node.js的模塊化,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 使用node-canvas在服務(wù)端渲染echarts圖表解析

    使用node-canvas在服務(wù)端渲染echarts圖表解析

    這篇文章主要介紹了使用node-canvas在服務(wù)端渲染echarts圖表解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • node使用mysql獲取數(shù)據(jù)庫數(shù)據(jù)中文亂碼問題的解決

    node使用mysql獲取數(shù)據(jù)庫數(shù)據(jù)中文亂碼問題的解決

    這篇文章主要介紹了node使用mysql獲取數(shù)據(jù)庫數(shù)據(jù)中文亂碼問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • NodeJs生成sitemap站點地圖的方法示例

    NodeJs生成sitemap站點地圖的方法示例

    這篇文章主要介紹了NodeJs生成sitemap站點地圖的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 淺談HTTP 緩存的那些事兒

    淺談HTTP 緩存的那些事兒

    HTTP 緩存機制作為 Web 應(yīng)用性能優(yōu)化的重要手段,是想要成為前端架構(gòu)的必備技能。這篇文章主要介紹了淺談HTTP 緩存并用node實現(xiàn)緩存,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • nodejs和php實現(xiàn)圖片訪問實時處理

    nodejs和php實現(xiàn)圖片訪問實時處理

    這篇文章主要為大家詳細介紹了nodejs和php分別實現(xiàn)圖片訪問實時處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論