使用 Node.js 完成文件上传

2025-01-10 18:52:40   小编

使用 Node.js 完成文件上传

在现代的网络应用开发中,文件上传是一个常见的功能需求。Node.js 作为一个强大的服务器端 JavaScript 运行环境,提供了便捷的方式来实现文件上传功能。

我们需要安装一些必要的模块。Express 是一个流行的 Web 应用框架,用于简化 Node.js 应用的开发;Multer 则是专门用于处理文件上传的中间件。通过 npm install express multer 命令,我们可以将这两个模块安装到项目中。

安装完成后,我们开始编写代码。在项目目录中创建一个 JavaScript 文件,例如 app.js。在文件开头引入 Express 和 Multer:

const express = require('express');
const multer = require('multer');
const app = express();

接下来,我们需要配置 Multer。Multer 提供了不同的存储引擎,常见的是内存存储和磁盘存储。如果选择磁盘存储,可以这样配置:

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/'); 
  },
  filename: function (req, file, cb) {
    cb(null, file.originalname); 
  }
});
const upload = multer({ storage: storage });

上述代码指定了上传文件的存储目录为 “uploads/”,并使用原始文件名保存文件。

然后,我们定义一个路由来处理文件上传请求:

app.post('/upload', upload.single('file'), (req, res) => {
  res.send('文件上传成功');
});

这里的 /upload 是上传文件的接口地址,upload.single('file') 表示接收单个文件,其中 'file' 是前端表单中文件输入字段的名称。

最后,启动服务器:

const port = 3000;
app.listen(port, () => {
  console.log(`服务器运行在端口 ${port}`);
});

在前端,我们可以通过一个简单的 HTML 表单来测试文件上传功能:

<!DOCTYPE html>
<html>
<head>
  <title>文件上传</title>
</head>
<body>
  <form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上传">
  </form>
</body>
</html>

通过上述步骤,我们就利用 Node.js、Express 和 Multer 完成了一个基本的文件上传功能。当然,在实际应用中,还需要考虑更多的因素,如文件类型限制、文件大小限制、错误处理等,以确保系统的稳定性和安全性。

TAGS: 后端开发 Node.js 文件上传 Web应用

欢迎使用万千站长工具!

Welcome to www.zzTool.com