首页 > 解决方案 > 如何同时使用在浏览器和外部浏览器中运行的代码(node.js 文件系统)

问题描述

我想在浏览器中输入文件夹的路径并显示位于其中的所有文件名,我发现它可以使用节点 fs,但我也有在浏览器上运行的代码,它需要位于文件中的 vars,这将使用节点在浏览器之外运行。我需要使用节点创建服务器并从中运行所有代码吗?或者你可以推荐我达到这个目标吗?PS:顺便说一下,我使用 webpack

标签: javascriptnode.js

解决方案


浏览器端和服务器端的 javascript 是有区别的。您不能直接从浏览器访问该目录。您需要某种后端技术,如 PHP、Java、node、python 等才能获取文件列表。您可以使用节点服务器和以下代码作为阅读目录。然后从前端向后端服务器发出一个简单的 HTTP 请求。

const path = require('path');
const express = require('express');
const fs = require('fs');

const PORT = 3000;
const app = express();

app.get('/getfiles',  async (req, res) => {
  const directoryPath = path.join(__dirname, 'Documents');
    let data = [];
    await fs.readdir(directoryPath, function (err, files) {
        //handling error
        if (err) {
            return console.log('Unable to scan directory: ' + err);
        } 
        
        //listing all files using forEach
        files.forEach(function (file) {
            // Do whatever you want to do with the file
            data.push(file)
        });
    });
    
    res.send(data);

});



app.listen(PORT, ()=>{
    console.log(`server running on port ${PORT}`);
});

推荐阅读