📜  Express.js res.sendFile()函数

📅  最后修改于: 2022-05-13 01:56:57.009000             🧑  作者: Mango

Express.js res.sendFile()函数

res.sendFile()函数基本上在给定路径传输文件,并根据文件扩展名设置 Content-Type 响应 HTTP 标头字段。
句法:

res.sendFile(path [, options] [, fn])

参数: path 参数描述路径,options 参数包含各种属性,如 maxAge、root 等,fn 是回调函数。
返回:它返回一个对象。
express 模块的安装:

  • 您可以访问安装 express 模块的链接。您可以使用此命令安装此软件包。
npm install express
  • 安装 express 模块后,您可以使用命令在命令提示符下检查您的 express 版本。
npm version express
  • 之后,您可以创建一个文件夹并添加一个文件,例如 index.js。要运行此文件,您需要运行以下命令。
node index.js

示例 1:文件名:index.js

javascript
var express = require('express');
var app = express();
var path = require('path');
var PORT = 3000;
 
// Without middleware
app.get('/', function(req, res){
    var options = {
        root: path.join(__dirname)
    };
     
    var fileName = 'Hello.txt';
    res.sendFile(fileName, options, function (err) {
        if (err) {
            next(err);
        } else {
            console.log('Sent:', fileName);
        }
    });
});
 
app.listen(PORT, function(err){
    if (err) console.log(err);
    console.log("Server listening on PORT", PORT);
});


javascript
var express = require('express');
const path = require('path');
var app = express();
var PORT = 3000;
 
// With middleware
app.use('/', function(req, res, next){
    
    var options = {
        root: path.join(__dirname)
    };
     
    var fileName = 'GeeksforGeeks.txt';
    res.sendFile(fileName, options, function (err) {
        if (err) {
            next(err);
        } else {
            console.log('Sent:', fileName);
            next();
        }
    });
});
 
app.get('/', function(req, res){
    console.log("File Sent")
    res.send();
});
 
app.listen(PORT, function(err){
    if (err) console.log(err);
    console.log("Server listening on PORT", PORT);
});


现在,创建一个 .txt 文件,就像我们在项目的根目录中创建的Hello.txt 一样,其中包含以下文本:



Greetings from GeeksforGeeks

运行程序的步骤:

  • 确保您已使用以下命令安装了express模块:
npm install express
  • 使用以下命令运行 index.js 文件:
node index.js

输出:

Server listening on PORT 3000
  • 现在打开浏览器并转到http://localhost:3000/ ,现在检查您的控制台,您将看到以下输出:
Server listening on PORT 3000
Sent: Hello.txt
  • 在屏幕上,您将看到以下输出:
Greetings from GeeksforGeeks

示例 2:文件名:index.js

javascript

var express = require('express');
const path = require('path');
var app = express();
var PORT = 3000;
 
// With middleware
app.use('/', function(req, res, next){
    
    var options = {
        root: path.join(__dirname)
    };
     
    var fileName = 'GeeksforGeeks.txt';
    res.sendFile(fileName, options, function (err) {
        if (err) {
            next(err);
        } else {
            console.log('Sent:', fileName);
            next();
        }
    });
});
 
app.get('/', function(req, res){
    console.log("File Sent")
    res.send();
});
 
app.listen(PORT, function(err){
    if (err) console.log(err);
    console.log("Server listening on PORT", PORT);
});

确保您创建了一个 .txt 文件,就像我们在项目的根目录中创建的GeeksforGeeks.txt 一样,其中包含以下文本:

Welcome from GeeksforGeeks

使用以下命令运行 index.js 文件:

node index.js

现在打开浏览器并转到http://localhost:3000/ ,现在检查您的控制台,您将看到以下输出:

Server listening on PORT 3000
Sent: GeeksforGeeks.txt
File Sent

您将在浏览器屏幕上看到以下输出:

Welcome from GeeksforGeeks

参考: https : //expressjs.com/en/5x/api.html#res.sendFile