我有一个相对较小的文件(大约数百千字节),我想在内存中直接访问整个代码执行过程.

我不太清楚Node的内部 struct .js,所以我想问的是fs open分是否足够,还是我必须读取所有文件并复制到Buffer分?

推荐答案

基本上,您需要使用fs模块中的readFilereadFileSync功能.它们返回给定文件的完整内容,但行为不同(异步与同步).

如果阻塞 node .js(例如,在应用程序启动时)不是问题,您可以使用同步版本,它非常简单:

var fs = require('fs');

var data = fs.readFileSync('/etc/passwd');

如果需要异步,代码如下:

var fs = require('fs');

fs.readFile('/etc/passwd', function (err, data ) {
  // ...
});

请注意,在任何一种情况下,您都可以将options对象作为第二个参数,例如指定要使用的编码.如果省略编码,将返回原始缓冲区:

var fs = require('fs');

fs.readFile('/etc/passwd', { encoding: 'utf8' }, function (err, data ) {
  // ...
});

有效编码为utf8asciiutf16leucs2base64hex.还有binary编码,但它已被弃用,不应再使用.您可以在相应的documentation中找到有关如何处理编码和缓冲区的更多详细信息.

Node.js相关问答推荐

使用OpenAI API时遇到问题

Windows上使用ES6+的OpenAPI规范的Express服务器不接受嵌套路由'

使用NodeJS在S3上传文件时的格式问题

如何使用NodeJS处理来自请求的单个或多个文件?

DocuSign:调用createEntaine时,RequestJWTApplicationToken返回401 AUTHORIZATION_INVALID_TOKEN

为什么我收到此错误:MissingSchemaError:架构尚未为模型&业务&注册

try 插入重复的邮箱时,mongoDB DuplicateKey 错误未定义

FHIR 服务器:尽管 JSON 格式正确,但在 POST 请求中接收未定义请求正文

如何创建具有不同对象类型的数组类型

在 TypeScript 中正确键入 MongoDB find 方法

我需要聚合两个 MongoDB 集合

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

使用 Nodejs 获取 Firebase 云消息传递历史记录

使用服务帐户将 Firebase 应用程序部署到 Heroku(使用 dotenv 的环境变量)

Node.js mongodb 驱动程序异步/等待查询

Aptana Studio 是否有 NodeJS 插件?

如何在 node 中转义 shell 命令的字符串?

为什么我会收到错误:解决方法指定过多?

Bootstrap 中的 Grunt 依赖冲突

Fluxible 中的脱水和再水合代表什么?