如何将JavaScript变量传递给node.js

时间:2019-05-15 21:02:07

标签: javascript node.js browserify bootbox

我正在尝试使用一些js变量将它们保存在.log文件中,我正在尝试将此变量传递给另一个将数据保存在.log文件中的文件,但出现下一个错误:

Uncaught ReferenceError: require is not defined

我的html是下一个:

<!DOCTYPE html>
<html lang="">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="style.css">
    <script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
    <script src="java.js"></script>
    <title></title>
</head>

<body onload="draw();">

    <!-- JS dependencies -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Bootstrap 4 dependency -->
    <script src="https://unpkg.com/popper.js@1.15.0/dist/umd/popper.min.js"></script>
    <script src="js/bootstrap.min.js"></script>

    <!-- bootbox code -->
    <script src="bootbox/bootbox.js"></script>
    <script src="bootbox/bootbox.locales.js"></script>

    <div class="container">
        <div class="row">
            <div id="Prueba" class="col-4 d-flex justify-content-center">
                <h1></h1>
                <!--<button type="button" class="btn btn-info">Info</button>-->
            </div>
            <div class="col-4 d-flex justify-content-center">
                <div class="col">
                    <div id="chart"></div>
                </div>
            </div>
            <div class="col-4 d-flex justify-content-center">
                <!--<button type="button" class="btn btn-info">Info</button>-->
            </div>
        </div>
    </div>
</body>

</html>

我要做的是演示在那里制作的游戏,然后使用输入创建一些模式以获取一些数据(我正在使用bootbox.js),将其保存在变量中,然后将其发送给另一个。 js将数据保存在.log文件中,所以我有一个随le html加载的函数,在该函数中,我创建了游戏和模式,当页面加载时,我打开了第一个模式

    modal1();

    function modal2() {
        var data = require('./save');
        bootbox.prompt({
            closeButton: false,
            title: "Código postal",
            size: "medium",
            inputType: "number",
            callback: function (result) {
                num = number(result);
                if (num != true || result.length < 5) {
                    modal2();
                } else {
                  data.save_cp(result);
                    bootbox.alert({
                        size: "small",
                        title: "Correcto",
                        message: ":O",
                        callback: function () {
                            /* your callback code */
                        }
                    });
                }
            }
        });
    }

    function modal1() {
        var data = require('./save');
        bootbox.prompt({
            closeButton: false,
            title: "Correo empresarial",
            size: "medium",
            //onScape: function(){},
            callback: function (result) {
                correo = email(result);
                empresarial = ce(result);
                if (correo != true || empresarial == true) {
                    modal1();
                } else {
                    data.save_c(result);
                    modal2();
                }
            }
        });
    }

并且错误消息未定义require,我猜这是因为我需要节点,所以我的问题是如何在不运行节点的情况下解决此问题?还是有另一种方法可以将其保存在日志中或txt文件而不下载文件,只需将其打开并添加数据即可。

1 个答案:

答案 0 :(得分:0)

无法通过浏览器稳定地访问文件系统。

如果您确实要使用文件,则可以尝试使用FileSystem API the Google Chrome provides。但是请注意,只有Google Chrome使用该API。另外,该API具有webkit前缀,因此如果它变得稳定,则可以更改。

此外,您可以做的是通过Electron JS进行游戏。 Electron JS通过NodeJS API公开文件系统,因此您的代码不会更改。但这不是网站,而是可以从网站分发的桌面应用程序。

除此之外,下载技巧是从浏览器访问文件的唯一方法。

编辑: 我之前曾尝试在文件系统api上使用browserify,但这是行不通的。 Node提供的文件系统API仅限于Node。

P.S。 似乎您真的想使用某些特定于服务器的功能。我建议您保留日志并通过电子邮件发送到服务器。您可以尝试使用Heroku或Firebase以获得良好的免费套餐服务。