node.js - NodeJs 中出现上下文错误,模块名称 "fs"尚未加载

标签 node.js requirejs webstorm sql.js

我一直在尝试使用 WebStorm 将 sql.js 与 NodeJs 结合使用。我在 WebStorm 中配置了 NodeJ 并尝试运行此代码。

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Database Test</title>
    <script src="js/require.js"></script>
    <script src="js/sql.js"></script>
</head>
<body>
<script>
    var fs = require('fs');
    var sql = window.SQL;
    var db = new sql.Database();
    sqlstr = "CREATE TABLE hello (a int, b char);";
    sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
    sqlstr += "INSERT INTO hello VALUES (1, 'world');"
    db.run(sqlstr);
    var res = db.exec("SELECT * FROM hello");
    var stmt = db.prepare("SELECT * FROM hello WHERE a=:aval AND b=:bval");
    var result = stmt.getAsObject({':aval' : 1, ':bval' : 'world'});
    console.log(result);
    stmt.bind([0, 'hello']);
    while (stmt.step()) console.log(stmt.get());
    function add(a, b) {return a+b;}
    db.create_function("add_js", add);
    db.run("INSERT INTO hello VALUES (add_js(7, 3), add_js('Hello ', 'world'));");
    stmt.free();
    var binaryArray = db.export();
    var buffer = new Buffer(binaryArray);
    fs.writeFileSync("filename.sqlite", buffer);
</script>
</body>
</html>

但是代码在控制台中给我一个错误

Uncaught Error: Module name "fs" has not been loaded yet for context: _. Use require([])

如何解决该错误并成功运行完整的代码?

最佳答案

据我所知,你不能在前端使用fs来写入文件。但是如果您想要这样做,您可以将变量存储在前端的本地存储中吗?

设置localStorage中的数据可以使用以下命令完成:

localStorage.setItem('nameForData', variableNameForData);

在需要时检索数据。

var variableNameForData = localStorage.getItem('nameForData')

从 localStorage 中删除数据:

localStorage.removeItem('nameForData')

Docs for local storage here.

编辑以回复评论

fs 用于访问代码运行的本地计算机上 Node 中的文件系统。使用命令:

var fs = require('fs');

您正在加载 Node.JS 中包含的模块

出于安全原因,这在浏览器中不起作用。

There are docs here that explain how fs works.

正如我所建议的,如果您确实想在前端存储数据,本地存储是一种方法。

关于node.js - NodeJs 中出现上下文错误,模块名称 "fs"尚未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875811/

相关文章:

javascript - requireJS 为什么每个定义必须位于不同的文件中?

javascript - Require.js 正在伤害我的大脑。关于加载脚本/模块的方式的一些基本问题

javascript - 多个变量的 JSDoc 类型

javascript - 使用 Webstorm 9.0 进行实时编辑

node.js - 插入 Mongoose 集合并导出模型

node.js - 多对多关系的正确文件夹结构

linux - 后台 Bash 脚本 : how to kill child processes

node.js - 我怎样才能让 Istanbul 尔与 Node 、 Mocha 、 Jasmine 一起工作并需要 js

dart - 如何在WebStorm中延长执行dart2js的最大时间

node.js - 解构 Sequelize 查询