node.js中的querystring模块
- querystring 模块提供了用于解析和格式化网址查询字符串的实用工具。 可以使用以下方式访问它:
const querystring=require("querystring")
- querystring.parse(str[, sep[, eq[, options]]]),将指定字符串解析为js对象,str参数为需要解析的字符串, sep分隔符1,eq分隔符2例如下列代码
const qs = require('querystring')
let string = 'name-wangyi#pass-123#sex-0'
let obj = qs.parse(string, '#', '-')
console.log(obj);
上述代码执行结果如下
- querystring.stringify(obj[, sep[, eq[, options]]]),将js对象序列化成字符串,例如下列代码
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// 返回 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// 返回 'foo:bar;baz:qux'
node.js中的fs模块
- fs 模块支持以标准 POSIX 函数建模的方式与文件系统进行交互。
- 要使用基于 promise 的 API:
import * as fs from 'fs/promises';
- 要使用回调和同步的 API:
import * as fs from 'fs';
例如下列代码 基于使用promise的api
import { unlink } from 'fs/promises';
try {
await unlink('/tmp/hello');
console.log('successfully deleted /tmp/hello');
} catch (error) {
console.error('there was an error:', error.message);
}
node.js中的vm模块
- vm 模块允许在 V8 虚拟机上下文中编译和运行代码。 vm 模块不是安全的机制。 不要用它来运行不受信任的代码。
例如下列代码
const vm = require('vm');
const x = 1;
const context = { x: 2 };
vm.createContext(context); // 上下文隔离化对象。
const code = 'x += 40; var y = 17;';
// `x` 和 `y` 是上下文中的全局变量。
// 最初,x 的值为 2,因为这是 context.x 的值。
vm.runInContext(code, context);
console.log(context.x); // 42
console.log(context.y); // 17
console.log(x); // 1; y 未定义。
- vm.runInContext(code, contextifiedObject[, options])vm.runInContext() 方法编译 code,在 contextifiedObject 的上下文中运行它,然后返回结果。 运行代码无权访问本地作用域。 contextifiedObject 对象必须之前已经使用 vm.createContext() 方法上下文隔离化,例如下列代码
const vm = require('vm');
const contextObject = { globalVar: 1 };
vm.createContext(contextObject);
for (let i = 0; i < 10; ++i) {
vm.runInContext('globalVar *= 2;', contextObject);
}
console.log(contextObject);
// 打印: { globalVar: 1024 }