首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Node.js中读取文件

在Node.js中读取文件
EN

Stack Overflow用户
提问于 2013-08-23 00:43:35
回答 8查看 286.6K关注 0票数 215

我对在Node.js中读取文件感到非常困惑。

代码语言:javascript
复制
fs.open('./start.html', 'r', function(err, fileToRead){
    if (!err){
        fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
            if (!err){
            console.log('received data: ' + data);
            response.writeHead(200, {'Content-Type': 'text/html'});
            response.write(data);
            response.end();
            }else{
                console.log(err);
            }
        });
    }else{
        console.log(err);
    }
});

文件start.html与尝试打开和读取它的文件位于同一目录中。

然而,在控制台中,我得到了:

{错误: ENOENT,打开'./start.html‘错误号: 34,代码:'ENOENT',路径:'./start.html’}

有什么想法吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-11-01 15:13:08

使用path.join(__dirname, '/start.html')

代码语言:javascript
复制
var fs = require('fs'),
    path = require('path'),    
    filePath = path.join(__dirname, 'start.html');

fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
    if (!err) {
        console.log('received data: ' + data);
        response.writeHead(200, {'Content-Type': 'text/html'});
        response.write(data);
        response.end();
    } else {
        console.log(err);
    }
});

感谢dc5。

票数 278
EN

Stack Overflow用户

发布于 2015-04-26 12:10:09

使用Node 0.12,现在可以同步执行此操作:

代码语言:javascript
复制
  var fs = require('fs');
  var path = require('path');

  // Buffer mydata
  var BUFFER = bufferFile('../public/mydata.png');

  function bufferFile(relPath) {
    return fs.readFileSync(path.join(__dirname, relPath)); // zzzz....
  }

fs是文件系统。readFileSync()返回一个缓冲区,如果需要,也可以返回字符串。

fs正确地假设相对路径是一个安全问题。path是一种变通方法。

要加载为字符串,请指定编码:

代码语言:javascript
复制
return fs.readFileSync(path,{ encoding: 'utf8' });
票数 52
EN

Stack Overflow用户

发布于 2016-10-23 15:21:14

1).For ASync:

代码语言:javascript
复制
var fs = require('fs');
fs.readFile(process.cwd()+"\\text.txt", function(err,data)
            {
                if(err)
                    console.log(err)
                else
                    console.log(data.toString());
            });

2).For同步:

代码语言:javascript
复制
var fs = require('fs');
var path = process.cwd();
var buffer = fs.readFileSync(path + "\\text.txt");
console.log(buffer.toString());
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18386361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档