我有一种情况,我想从客户端将数据导出到CSV。我将拥有一个文本框/区域,或用户可以在其中输入数据的任何区域,然后理想情况下,只需单击一下,便会使用该数据更新本地CSV文件。
使用NodeJS与服务器交互及其核心模块(特别是fs
模块)可以轻松实现这一点,但是显然浏览器并没有那么多。
我发现某些节点模块(例如underscore
)支持RequireJS的使特定模块在浏览器中工作的方法。因此,对于下划线,我这样做:
Methods.js
define(['underscore'],function(_) {
var Methods = {
doSomething: function() {
var x = _.size({one: 1, two: 2, three: 3, xuz: 3});
alert(x);
}
};
return Methods;
});
common.js
requirejs.config({
baseURL: 'node_modules',
paths: {
underscore: 'underscore/underscore',
}
});
require(['methods'], function(y){
y.doSomething();
});
index.html
<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问题的方法。
浏览器模型概述 window 对象 Navigator 对象,Screen 对象 Cookie XMLHttpRequest 对象 同源限制 CORS 通信 Storage 接口 History 对象 Location 对象,URL 对象,URLSearchParams 对象 ArrayBuffer 对象,Blob 对象 File 对象,FileList 对象,FileReader 对象 表单,F
基本用法 管理前端模块 生成前端模块 脚本文件的实时生成 browserify-middleware模块 参考链接 随着JavaScript程序逐渐模块化,在ECMAScript 6推出官方的模块处理方案之前,有两种方案在实践中广泛采用:一种是AMD模块规范,针对模块的异步加载,主要用于浏览器端;另一种是CommonJS规范,针对模块的同步加载,主要用于服务器端,即node.js环境。 Brows
浏览器工作原理。 目录 排版引擎 渲染 JavaScript 引擎 并发模型 内存管理 执行环境 网络通信 缓存 Cookie 跨源资源共享 安全 同源策略 Web APIs 事件 存储 定时器 Fetch 文档操作 数据通信 图形处理 音视频处理
设计开发的页面与网站需要在浏览器上预览与调试。推荐使用 Chrome 浏览器。 Chrome Safari Firefox Edge(IE)
可浏览互联网Web网页的应用程序。 浏览器的LiveArea™ 浏览Web网页 开启更多窗口 使用书签及历史记录 设定浏览器 上传
浏览工具 JS 浏览工具: URI.js platform.js history.js html2canvas 参考工具(查看浏览器是否支持某特性) caniusee.com HTML5 Please HTML5 test Browserscope webbrowsercompatibility.com iwanttouse.com/ Platform status Browser support