在 node.js 中需要 RX.js

requiring RX.js in node.js

我在要求 rx 进入我的文件时遇到错误。在浏览器控制台中显示 "Uncaught ReferenceError: require is not defined"

检查了版本并在 github 上进行了参考,但没有看到它仍然不起作用?只是想尝试在单击按钮时使用警报消息。

这是我的 observ.js 文件,位于 /js

var Rx = require('rx');
var Observable = Rx.Observable;

var button = document.getElementById('button');

var handler = function(e) {
  alert('clicked!');
};

button.addEventListener('click', handler);

这是我的 html 文件,位于 /public

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
    <button id="button">Click me</button>
  <script src="../js/observ.js"></script>
</body>
</html>

这是我的 express js 应用程序,刚在根文件夹html 中提供服务

var express = require('express');
var app = express();


app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res) {
  res.render('index');
});

app.listen(process.env.PORT || 3000, function() {
  console.log('Express listening on port 3000');
});

要在前端使用节点模块,请使用browserify。默认情况下,Javascript 没有关键字 require, module, exports

在客户端查看 documentation. It looks like you need to use an AMD loader like require.js 到 运行 这段代码。

例如:

<html>
<head>
    <title>test</title>
</head>
<body>
    <button id='button'>Test</button>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.22/require.js"></script>
    <script>
        requirejs.config({
            paths: {
                rx: 'rx'
            }
        });

        requirejs(['rx'], function(Rx) {
          var Observable = Rx.Observable;

          var button = document.getElementById('button');

          var handler = function(e) {
            alert('clicked!');
          };

          button.addEventListener('click', handler);

        });
    </script>
    </body>
</html>

要查看工作示例,请按照以下步骤操作。

  1. 复制上面的代码,
  2. 新建本地文件夹/html文件
  3. 将以上代码粘贴到 HTML 文件中
  4. 在新文件夹的根目录下创建一个名为 rx.js 的新文件
  5. Copy rx code from here and paste it in the rx.js file

注意:我已经验证这有效。但如果您正在寻找更多的同态方法,您可能还想看看 browserify