在数字化时代,文件传输与分享是日常工作中不可或缺的一部分。而对于初学者来说,使用Express.js搭建一个简单的文件服务器,不仅能够加深对Node.js框架的理解,还能学会如何高效地处理文件上传和下载。本文将为你详细介绍如何使用Express.js搭建一个文件服务器,实现文件的传输与分享。
一、准备工作
在开始之前,请确保你的电脑上已经安装了Node.js和npm(Node.js的包管理器)。如果没有,请前往Node.js官网下载并安装。
二、创建项目
- 打开命令行工具,进入你想创建项目的目录。
- 运行命令
npm init -y初始化项目。 - 安装Express.js框架:
npm install express --save。
三、搭建基本服务器
创建一个名为 server.js 的文件,并添加以下代码:
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('文件服务器启动成功!');
});
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
});
保存文件后,运行 node server.js。在浏览器中输入 http://localhost:3000,你应该能看到“文件服务器启动成功!”的提示。
四、实现文件上传
为了实现文件上传,我们需要引入 multer 中间件。首先,安装 multer:npm install multer --save。
接下来,修改 server.js 文件,添加以下代码:
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
if (!req.file) {
return res.status(400).send('请上传文件!');
}
res.send(`文件上传成功,文件名:${req.file.filename}`);
});
现在,你可以通过访问 http://localhost:3000/upload 并选择文件来上传文件了。
五、实现文件下载
为了实现文件下载,我们需要添加一个路由来处理文件下载请求。修改 server.js 文件,添加以下代码:
const fs = require('fs');
const path = require('path');
app.get('/download/:filename', (req, res) => {
const filename = req.params.filename;
const filePath = path.join(__dirname, 'uploads', filename);
fs.exists(filePath, exists => {
if (!exists) {
return res.status(404).send('文件不存在!');
}
res.download(filePath);
});
});
现在,你可以通过访问 http://localhost:3000/download/文件名 来下载上传的文件了。
六、总结
通过以上步骤,你已经成功使用Express.js搭建了一个简单的文件服务器,实现了文件的上传和下载。在实际应用中,你可能需要添加更多的功能,如文件存储、权限控制等。但无论如何,这个基础教程都能为你提供一个良好的起点。祝你在Node.js和Express.js的世界里畅游!
