使用 vm 加载文件中的数据到变量里面
2023-09-14 08:58:45 时间
.json 不能写注释, 还需要严格的双引号
或者使用 .json5
// test.db
[
// name
{name: 1}
]
// test.js
const fs = require('fs');
const vm = require('vm');
const util = require('util')
const format = console.log;
const data = {
sc: ''
}
vm.createContext(data);
util.promisify(fs.readFile)('./test.db', 'utf8')
.then(body => {
vm.runInContext(`sc = ${body}`, data); // 它会运行未经信任的代码
format( data.sc)
format(typeof data.sc)
})
执行结果
>node test.js
[ { name: 1 } ]
object
json5
// test.json5
[
{
name: 1, // 这是名字
}
]
// test.js
const fs = require('fs');
const JSON5 = require('json5')
const {
promisify
} = require('util')
const format = console.log
promisify(fs.readFile)('./test.json5', 'utf8')
.then(body=>{
format( body)
format(typeof body)
format(JSON5.parse( body))
})
相关文章
- 接口测试|HttpRunner环境变量与跨文件输出传递变量
- 【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
- 【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )
- 【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
- Linux教你如何使用gdb调试core文件
- Java多线程文件下载管理器详解编程语言
- MySQL文件:知识必备(什么是mysql文件)
- fLinux使用f参数检测文件是否存在(linuxif里的-)
- 搭配SSM框架的5个必备框架环境文件详解编程语言
- Linux下轻松解压:以tar文件为例(linux解压指令)
- Linux虚拟机上安全复制文件(复制到linux虚拟机)
- Linux下批量重命名文件的简单方法(linux批量重命名)
- Linux 下批量重命名文件的技巧(批量重命名linux)
- Linux中的变量文件:解密优化工具(linux变量文件)
- 解决MySQL下的文件缺失问题(mysql下 缺少文件)
- html文件中jquery与velocity变量中的$冲突的解决方法
- VC判断一个文件为目录的方法