如何保护全局变量以在 Node.js 中被覆盖
How to protect globals variables for beeing overridden in Node.js?
我想知道是否有任何方法可以确保某些变量不会在 Node.js 程序中被错误覆盖。
由于不可能像在 Java 中那样final
设置 var,因此我认为没有任何方法可以确保全局的稳定性,该全局可以从任何地方(甚至从 EJS 等模板文件)覆盖。
非回归测试、代码审查、包的使用等是检测或避免此类错误的一些方法,但我想知道是否可以在 Node 中使用更强大的东西。
您可以创建不可写或冻结的对象
var obj = {
test : 'test'
}
Object.freeze(obj);
obj.test = 'something else';
console.log(obj.test); // still "test"
据我所知,没有办法锁定变量,只有对象的属性
除了 else node 提到的Object.freeze
之外.js还应该支持 const
关键字,至少在启用 es6 的情况下运行时是这样。不过,这适用于块范围的变量,而不是属性。
或者,Object.defineProperty
可用于定义不可写、不可配置的属性。这也适用于模块或全局对象,尽管我自己还没有测试过。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- node.js请求数据事件未在CORS ajax调用中触发
- 使用node.js制作网站
- 使用node.js服务器中的evernote api获取note内容
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 使用CI和CodeDeploy对node.js应用程序进行连续部署
- 在Node.js中上传和检索图像
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 如何使用 Node JS 获取 JSON 嵌套数组值