在node.js中需要使用RX.js

3

当我在文件中导入rx时,出现了错误。浏览器控制台显示"Uncaught ReferenceError: require is not defined"。

已检查版本和GitHub上的引用,但仍无法解决问题。只想尝试在单击按钮时使用alert消息。

这是我的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');
});
2个回答

3

文档来看,似乎需要使用像require.js这样的AMD加载器才能在客户端上运行此代码。

例如:

<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. 从此处复制 rx 代码并将其粘贴到 rx.js 文件中
注意:我验证过这个方法可行。但如果您正在寻找更全面的 Isopmorphic 方法,您可能还想看看 browserify

0

在前端中使用 Node.js 模块,可以使用 browserify 工具。因为 JavaScript 默认不支持关键字 require, module, exports


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接