浏览器中的Node JS fs模块
我有一种情况,我想从客户端将数据导出到CSV。我将拥有一个文本框/区域,或用户可以在其中输入数据的任何区域,然后理想情况下,只需单击一下,便会使用该数据更新本地CSV文件。
使用NodeJS与服务器交互及其核心模块(特别是fs
模块)可以轻松实现这一点,但是显然浏览器并没有那么多。
我发现某些节点模块(例如underscore
)支持RequireJS的使特定模块在浏览器中工作的方法。因此,对于下划线,我这样做:
define(['underscore'],function(_) { var Methods = {
doSomething: function() {
var x = _.size({one: 1, two: 2, three: 3, xuz: 3});
alert(x);
}
};
return Methods;
});
requirejs.config({ baseURL: 'node_modules',
paths: {
underscore: 'underscore/underscore',
}
});
require(['methods'], function(y){
y.doSomething();
});
<script data-main="common" src="require.js"></script><script>
require(['common'], function() {
require(['methods.js']);
});
</script>
上面的方法工作正常,并且会显示警报:4。
但是,当我对fs
模块尝试相同时,它将无法正常工作。它将显示此错误:
Module name "util" has not been loaded yet for context: _. Use require([])
据我了解,这是因为还fs
需要其他几个模块,其中一个是util
。
因此,我开始将所有这些模块添加到RequireJS配置中。但是仍然没有运气,所以我专门对util
模块进行了单独测试,因为这似乎不需要其他模块来工作。
现在我陷入了这个错误: Uncaught ReferenceError: exports is not defined
我尝试util
通过将整个模块源代码封装在其中来对该模块进行模块化:
define([], function() {})
但这也不起作用…我也尝试过复制underscore
模型,但仍然没有运气。
所以我想知道是否有人设法在浏览器中使用带有RequireJS或Browserify之类的util
&fs
模块(或其他核心NodeJS核心模块)的浏览器。
回答:
没错,exports
是特定于节点的JS(用于使模块的一部分在模块外部可用),并且不受Web浏览器的支持。尽管从技术上讲NodeJS是JS,但是某些特定window
于客户端的属性(例如浏览器和exports
NodeJS应用程序的属性)是不能互换的。
就是说,这是客户端JS解决CSV问题的方法。
以上是 浏览器中的Node JS fs模块 的全部内容, 来源链接: utcz.com/qa/430912.html