当前位置: 首页 > 面试题库 >

浏览器中的Node JS fs模块

白光耀
2023-03-14
问题内容

我有一种情况,我想从客户端将数据导出到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之类的utilfs模块(或其他核心NodeJS核心模块)的浏览器。


问题答案:

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

就是说,这是客户端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