[英]Node.js convert Buffer to object/function
fs.readFile()
、 fs.readFileSync()
以及Amazon S3
返回一個Buffer
對象。 如何將此緩沖區用作可以執行的實際 JavaScript 代碼?
這是一個非常基本的例子。
some-file.js:
module.exports = function () {
console.log('hello');
};
主文件
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.