javascript - 为什么 fs.readFile 返回一个缓冲区?

标签 javascript node.js asynchronous q

我已经提到了 this question已经。也就是说,我不认为我的问题在于对异步的误解。

这是我模块的相关部分。

var fs = require('fs');
var q = require('q');
var u = require('../utils/json');

var indexFile = './data/index.json';

function getIndex() {
    var def = q.defer(),
        promise = def.promise,
        obj;

    fs.readFile(indexFile, function(err,data) {
        if (err) {
            throw err;
            def.reject(err);
        }
        console.log('data', data);

        def.resolve(obj);
    });

    return promise;
}

当我记录“数据”时,我得到一个缓冲区(如下),而不是该文件的 JSON 内容。

<Buffer 5b 7b 22 68 65 6c 6c 6f 22 3a 22 77 6f 72 6c 64 22 7d 5d>

有什么想法吗?

最佳答案

根据 Node.js API docs for 'fs' module ,如果未传递 encoding 选项,则 read 函数将返回一个缓冲区。

如果您传递一个编码值,它将返回一个具有该编码的字符串:

fs.readFile('/etc/passwd', 'utf-8', callback)

关于javascript - 为什么 fs.readFile 返回一个缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269211/

相关文章:

javascript - 从嵌套元素中删除重复的文本

node.js - ENOENT 在 Express Endpoint 上没有用于 readFileSync 的此类文件

javascript - 如何使用 '>' 在 Node.js 中重定向输出?

javascript - 如何将整数数组转换为对象数组?

javascript - Angular2 JSON 返回

javascript - 如果选中复选框,则添加类,并使用 jquery 将类分配给它的父 div

javascript - Node js中未处理的 promise 拒绝错误

react-native - 你可以在 React Native 异步中创建 render() 方法吗?

java - 有什么方法可以自动创建 Mongo 编解码器吗?

javascript - asp.net web 服务 javascript 包装器异步问题