ホームページ > ウェブフロントエンド > jsチュートリアル > Node.jsを使用してシンプルなファイル管理システムを構築する方法

Node.jsを使用してシンプルなファイル管理システムを構築する方法

王林
リリース: 2023-11-08 18:19:49
オリジナル
1560 人が閲覧しました

Node.jsを使用してシンプルなファイル管理システムを構築する方法

Node.js は非常に人気のあるサーバーサイド ランタイム環境であり、JavaScript で記述されており、開発者はフロントエンドとバックエンドの開発に同じプログラミング言語を使用できます。 Node.js の効率性と柔軟性により、Node.js は Web 開発の重要な部分となっています。この記事では、Node.js を使用して単純なファイル管理システムを構築する方法を学びます。

この機能を実現するには、Node.js の基本モジュール fs (ファイル システム) と http を使用して Web サーバーを作成する必要があります。まず、コマンド ラインで「npm init」コマンドを実行して package.json ファイルを生成し、次に「npm install --saveexpress body-parser ejs multer fs」を通じて必要な依存関係パッケージをインストールする必要があります。

まず、app.js という名前の Node.js ファイルを作成します。コードでは、まず必要なモジュールとミドルウェアを導入します。

const express = require('express');
const bodyParser = require('body-parser');
const multer = require('multer');
const fs = require('fs');
const ejs = require('ejs');
const app = express();
ログイン後にコピー

ここでは、エクスプレス フレームワーク、ボディパーサー ミドルウェア、および multer ミドルウェアを使用してファイル アップロード機能を処理し、ejs テンプレート エンジンを使用してページをレンダリングします。 。

次に、静的リソース ルーティングを設定する必要があります。

app.use(express.static(__dirname + '/public'));
ログイン後にコピー

ここでは、プロジェクトの静的ファイルをパブリック フォルダーに配置します。

POST リクエストを処理するためにボディパーサー ミドルウェアを使用する必要もあります:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
ログイン後にコピー

次に、ファイルのアップロードおよびダウンロード リクエストを処理するルートを作成します:

//上传文件的路由
app.post('/upload', upload.single('file'), (req, res) => {
  res.redirect('/');
});
 
//下载文件的路由
app.get('/download/:filename', (req, res) => {
  const { filename } = req.params;
  const filePath = `${__dirname}/uploads/${filename}`;
  res.download(filePath);
});
ログイン後にコピー

ここでは、ファイルのアップロードを処理するために Multer が使用され、ファイルのダウンロードには res.download() メソッドが使用されます。

最後に、ページをレンダリングするルートを作成します。

app.get('/', (req, res) => {
  const filesPath = `${__dirname}/uploads`;
  const data = fs.readdirSync(filesPath);
  res.render('index', { files: data });
});
ログイン後にコピー

ここでは、アップロード フォルダー内のすべてのファイルを読み取り、テンプレート ファイルにレンダリングします。

次に、ファイル リストとファイルをアップロードするためのフォームを表示するために、index.ejs テンプレート ファイルを作成する必要があります。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>File Manager</title>
</head>
<body>
  <h1>Files List:</h1>
  <% for (let i = 0; i < files.length; i++) { %>
    <p><a href="/download/<%= files[i] %>"><%= files[i] %></a></p>
  <% } %>
 
  <hr>
 
  <h2>Upload File:</h2>
  <form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">Upload</button>
  </form>
</body>
</html>
ログイン後にコピー

ここでは、EJS 構文を使用してファイル リストを動的に生成し、ファイルをアップロードするための HTML フォーム。

最後に、サーバーを起動します:

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});
ログイン後にコピー

これで、Node.js を使用した単純なファイル管理システムの構築が完了しました。これには、http://localhost:3000 にアクセスしてアクセスできます。ブラウザで効果を確認してください。

完全なコードは次のとおりです:

const express = require('express');
const bodyParser = require('body-parser');
const multer = require('multer');
const fs = require('fs');
const ejs = require('ejs');
const app = express();
 
//设置静态资源路由
app.use(express.static(__dirname + '/public'));
 
//设置body-parser中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
 
//设置存储文件的位置和文件名
const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, 'uploads');
  },
  filename: (req, file, cb) => {
    const { originalname } = file;
    cb(null, originalname);
  }
});
 
const upload = multer({ storage });
 
//上传文件的路由
app.post('/upload', upload.single('file'), (req, res) => {
  res.redirect('/');
});
 
//下载文件的路由
app.get('/download/:filename', (req, res) => {
  const { filename } = req.params;
  const filePath = `${__dirname}/uploads/${filename}`;
  res.download(filePath);
});
 
//渲染页面的路由
app.get('/', (req, res) => {
  const filesPath = `${__dirname}/uploads`;
  const data = fs.readdirSync(filesPath);
  res.render('index', { files: data });
});
 
//设置模板引擎和模板文件夹位置
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
 
//启动服务
app.listen(3000, () => {
  console.log('App listening on port 3000!');
});
ログイン後にコピー

これまでのところ、Node.js を使用して単純なファイル管理システムを構築するプロセスが完了しました。この例を通じて、Node.js についてより深く理解できるようになります。 jsの基本モジュールとミドルウェアの使い方。

以上がNode.jsを使用してシンプルなファイル管理システムを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート