繁体   English   中英

[Node.js]如何使用readFile访问不同目录下的文件

[英][Node.js]How to access files in different directory using readFile

在主目录下:

  • CSS(福勒)
    • 样式表.css
  • js(文件夹)
    • 数据.js
    • 服务器.js
  • index.html

在 server.js 里面:


    //Cannot access index.html
    file.readFile('index.html', 'utf8', function(err, contents){
      //some code
    });

具体来说,我们如何访问stylesheet.cssindex.html

要访问顶级目录中的文件夹,您可以在路径中使用..

server.js中访问index.html

//access top level directory using `..`
file.readFile('../index.html', 'utf8', function(err, contents){
  //some code
});

file.readFile('../css/stylesheet.css', 'utf8', function(err, contents){
  //some code
});

理想情况下,您总是从绝对路径导入。 这可以防止在您重组应用时破坏您的应用。 我建议始终从项目的根目录启动您的应用程序,例如node.js/server.js

从根目录启动时, process.cwd() (当前工作目录)变量将始终指向项目的根目录,文件读取可以使用以下方法完成:

var { join } = require('path')
var htmlFile = join(process.cwd(), 'index.html')
var cssFile = join(process.cwd(), 'css', 'stylesheet.css')

// read html file
file.readFile(htmlFile, 'utf8', function(err, contents){
  //some code
});

// ...

当您启动服务器时,会设置一个名为__dirname的全局变量,该变量保存server.js所在文件夹的绝对路径。 现在我们可以使用该值来读取与server.js文件相关的文件。 在下面的代码中,我使用path.join()构造了您要访问的文件的路径。 双点( .. )是js文件夹上面的目录。

const fs = require("fs");
const path = require("path");

// Get the absulote path of the files
const htmlFile = path.join(__dirname, "..", "index.html");
const cssFile = path.join(__dirname, "..", "css", "stylesheet.css");

// Read files
fs.readFile(htmlFile, "utf8", function (err, content) {
  console.log(content);
});

fs.readFile(cssFile, "utf8", function (err, content) {
  console.log(content);
});

尝试添加“。”,所以它将是:

fs.readFile("./../index.html", "utf8", (err, content){ return }) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM