gpt4 book ai didi

javascript - Node.js 将 Buffer 转换为对象/函数

转载 作者:行者123 更新时间:2023-11-30 09:10:52 24 4
gpt4 key购买 nike

fs.readFile()fs.readFileSync() 以及 Amazon S3 返回一个 Buffer 对象.我如何将此缓冲区用作我可以执行的实际 JavaScript 代码?

这是一个非常基本的例子。

some-file.js:

module.exports = function () {
console.log('hello');
};

main.js

const data1 = fs.readFileSync('./some-file.js'); // This is a Buffer
const data2 = fs.readFileSync('./some-file.js', 'utf-8'); // This is a string

data1(); // Error: data1 is not a function
JSON.parse(data2)(); // Error: data2 is no valid JSON

最佳答案

如果你想执行 javascript 代码,而不是使用 eval,这可能会带来相当大的安全风险,你应该使用内置模块 vm

const vm = require('vm');

const sandbox = { x: 2 }; // pass variables or some context if you want
vm.createContext(sandbox); // Contextify the sandbox.

const code = buffer.toString(); // your buffer
vm.runInContext(code, sandbox);

关于javascript - Node.js 将 Buffer 转换为对象/函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com