簡體   English   中英

ExpressJS應用程序

[英]ExpressJS app.use

我正在嘗試學習ExpressJS,並且遇到了這段代碼。 我似乎無法理解app.use函數,並且文檔對我來說還不清楚。 調用app.use時,此特定示例代碼中的/ public目錄到底發生了什么?

// Require dependencies
var express = require('express');
var app = express();

// Set server port
app.set('port', (process.env.PORT || 3000));

// Set static page directory, /public
app.use(express.static(__dirname + '/public'));
app.use('/public', express.static('public'));

// Set template file directory, /views. Set view engine to EJS
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

// Route root request to pages/index
app.get('/', function(request, response) {
    response.render('pages/index');
});

// Route favicon request to public/favicons
app.get('/favicon.ico', function(request, response) {
    response.render('./public/favicons');
});

// Begin listening at specified port
app.listen(app.get('port'), function() {
    console.log('Node app is running on port', app.get('port'));
});

很簡單-您正在設置公共目錄以通過HTTP進行訪問。

因此,類似http://localhost:3000/public/abc.jpg將為您abc.jpg來自公用文件夾的abc.jpg

app.use('/public', express.static('public'))

行的簡單含義是-匹配以/public開頭的任何路徑,例如:

http://localhost/public/*.jpg

或其他任何擴展名-將從您的public文件夾express.static('public')的參數)中選擇該文件並提供服務。

app.use(express.static(__dirname + '/public'))

表示-匹配任何路徑,如果在public目錄中找到文件,則通過HTTP進行投放。

您可以只使用這兩行-區別在於URL中的/public部分。

該文檔對此非常清楚: https : //expressjs.com/en/starter/static-files.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM