【问题标题】:Nodejs: expected expression, got '<'Nodejs:预期的表达,得到'<'
【发布时间】:2017-04-15 16:07:01
【问题描述】:

我目前正在使用带有 nodejs 的 deepstream。现在,我正在按照这里的教程来使用新库:deepstream tutorial

但是,一旦我完成了文件的 RenderDOM 部分,就会出现错误。这是当前代码:

<!DOCTYPE html>
<html>
 <head>
<script src="deepstream.js"></script>
</head>
<body>
<input type="text" />
<script type="text/javascript">

    const deepstream = require('deepstream.io-client-js')
    const DeepstreamMixin = require('deepstream.io-tools-react')

    const client = deepstream('localhost:6020').login({}, () => {
      //ReactDOM.render call will go in here
      ReactDOM.render(
          <SyncedInput dsRecord="some-input" />,
          document.getElementById('example')
        )

        const SyncedInput = React.createClass({
          mixins: [DeepstreamMixin],
          setValue: function(e) {
            this.setState({value: e.target.value})
          },
          render: function() {
            return (
              <input value={this.state.value} onChange={this.setValue} />
            )
          }
        })
    })
    DeepstreamMixin.setDeepstreamClient(client)
</script>
</body>
</html>

错误出现在 render:function : "input value" 的这一行

【问题讨论】:

  • @T.J.Crowder 它假设你首先经历过deepstream.io/tutorials/core/getting-started-quickstart。但是,是的,完全没有想象的那么清楚
  • 我已经完成了那部分。但这引入了 deepstream.io-tools-react 的 React 库。根据我对 DOM 的理解,该行应该是正确的,但这意味着这不是该行的问题,而是其他问题。
  • 是的,它是服务器的事情,当它在期望 JS 时获取 HTML 时发生。不过在这种特殊情况下帮不了你,祝你好运!
  • 这个问题并没有特别突出这里的问题,xShirase。我也搜索了答案,一般情况是这种类型的错误没有告诉我们问题是什么。它总是依赖于代码本身。除非您说 html 代码是问题所在。

标签: javascript node.js deepstream.io


【解决方案1】:

您缺少 React 所需的依赖项。现在,由于在您的 javascript 中发现了无效字符,该错误正在出现。这些字符都是 React 的元语言 JSX 的一部分。

本教程假定您已经设置好了。有两种选择:

  1. 使用 Webpack 预处理您的代码,以便将所有 JSX 转换为正确的 JavaScript

  2. 在浏览器转换器中加载。有关更多信息,请参阅本教程 - https://www.sitepoint.com/getting-started-react-jsx/

我建议使用 #2,因为这需要较少的设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多