浏览器中的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之类的utilfs模块(或其他核心NodeJS核心模块)的浏览器。

回答:

没错,exports是特定于节点的JS(用于使模块的一部分在模块外部可用),并且不受Web浏览器的支持。尽管从技术上讲NodeJS是JS,但是某些特定window于客户端的属性(例如浏览器和exportsNodeJS应用程序的属性)是不能互换的。

就是说,这是客户端JS解决CSV问题的方法。

以上是 浏览器中的Node JS fs模块 的全部内容, 来源链接: utcz.com/qa/430912.html

回到顶部