2017-02-21 157 views
0

我想使用Express,pg并对我的项目做出反应。但反应给我一些问题。React - Syntaxerror:unexpected token <

Here's my project's dir

index.js

var express = require('express'); 
var server = express(); 
var path = require('path'); 
var app = require('./app/app.js'); 

server.get('/', function (req, res) { 
    res.sendFile(path.join(__dirname + '/public/index.html')); 
}); 
server.listen(3000, function() { 
    console.log("server is running on port 3000!"); 
}); 

var connexionDB = require('./db/connexionAvecPg'); 

app.js

var react = require('react'); 
var {render} = require('react-dom'); 

var App = react.createClass({ 
    render: function() { 
     return(
       <div> 
        <p>test</p> 
       </div> 
       ); 
    } 
}); 

render(
     <App/>, 
     document.getElementById('root') 
     ); 

(是的,它是ES5,但我有我的理由使用它,而不是ES6-7)

Here's my bug

我的代码有什么问题?我忘记了什么吗? Thx为您的时间。

--- \编辑/ ---

明很快的回答后,我尝试这样做:

app.js

var React = require('react'); 
var ReactDOM = require('react-dom'); 

class App extends React.component{ 
    render() { 
     return React.createElement('div', null, 'Test'); 
    } 
}; 

ReactDOM.render(
     React.createElement(App, null), 
     document.getElementById('root') 
     ); 

但我有这样的:

/home/josue/im-expressandpg/app/app.js:14 
class App extends React.component{ 
        ^

TypeError: Class extends value undefined is not a constructor or null 

--- \ EDIT 2/---

Thx to PSo我看到了我的错误。我改变了这一点:

class App extends React.component{ 

要这样:

class App extends React.Component{ 

当我前高管:

/home/josue/im-expressandpg/app/app.js:17 
     document.getElementById('root') 
     ^

ReferenceError: document is not defined 

如果我补充一点:

var document = require('./../public/index.html'); 

我得到:

/home/josue/im-expressandpg/public/index.html:1 
(function (exports, require, module, __filename, __dirname) { <!doctype html> 
                  ^
SyntaxError: Unexpected token < 
+0

使用大写字母C表示:React.Component – PSo

回答

1

要使用JSX语法,必须传输代码。 Babel可以用作翻译。如果你不想使用任何转译器,那么你应该使用react.createElement()函数。

+0

Thx,我将学习.createElement()。 –

+0

我做了一些修改,你能看到我吗? –

+0

如果没有ES6,请使用'react.createClass'来定义一个组件,就像您之前所做的那样。 https://facebook.github.io/react/docs/react-without-es6.html –

0

删除代码的下半部分,这是渲染函数的重复。并记住将其导出供以后使用。

var React = require('react'); 
var ReactDOM = require('react-dom'); 

class App extends React.Component{ 
    render() { 
     return React.createElement('div', null, 'Test'); 
    } 
}; 

export default App; 
+0

但我只想要一个React文件(目前)。我必须将ReactDOM.render放在某处,对吗? thx为您提供帮助。 –

相关问题