Node.js 同构反应示例错误
Node.js isomorphic-react-example error
我看到这个 https://github.com/DavidWells/isomorphic-react-example 并创建了另一个简单的,但是错误消息是找不到模块应用程序,它是否遗漏了什么?或者我应该如何更改代码?谢谢
server.js
var express = require('express');
var exphbs = require('express-handlebars');
var app = express();
require("node-jsx").install();
var React = require("react");
App = React.createFactory(require("app"));
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
app.get('/', function (req, res) {
var markup = React.renderToString(App());
res.render('main', {
title: 'Express',
markup: markup
});
});
app.listen(3000);
app.js
var React = require("react");
var App = React.createClass({
getInitialState() {
return {
search: ""
};
},
render() {
return (
<div className="search-component">
<input type="text" onChange={this.changeSearch} />
<p><span>You are searching for: {this.state.search}</span></p>
</div>
);
},
changeSearch(event) {
var text = event.target.value;
this.setState({
search: text
});
}
});
module.exports = App;
main.handlebars
<!DOYCYPE html>
<html>
<head>
<script>
var as = "as";
</script>
<body>
<p> main </p>
{{{markup}}}
</body>
</html>
如果你想要一个文件作为模块,你必须给它路径名,在这种情况下 ./app
如果它在同一目录中。
所以你的台词
App = React.createFactory(require("app"));
应该变成类似
的样子
var App = React.createFactory(require("./app"));
我看到这个 https://github.com/DavidWells/isomorphic-react-example 并创建了另一个简单的,但是错误消息是找不到模块应用程序,它是否遗漏了什么?或者我应该如何更改代码?谢谢
server.js
var express = require('express');
var exphbs = require('express-handlebars');
var app = express();
require("node-jsx").install();
var React = require("react");
App = React.createFactory(require("app"));
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
app.get('/', function (req, res) {
var markup = React.renderToString(App());
res.render('main', {
title: 'Express',
markup: markup
});
});
app.listen(3000);
app.js
var React = require("react");
var App = React.createClass({
getInitialState() {
return {
search: ""
};
},
render() {
return (
<div className="search-component">
<input type="text" onChange={this.changeSearch} />
<p><span>You are searching for: {this.state.search}</span></p>
</div>
);
},
changeSearch(event) {
var text = event.target.value;
this.setState({
search: text
});
}
});
module.exports = App;
main.handlebars
<!DOYCYPE html>
<html>
<head>
<script>
var as = "as";
</script>
<body>
<p> main </p>
{{{markup}}}
</body>
</html>
如果你想要一个文件作为模块,你必须给它路径名,在这种情况下 ./app
如果它在同一目录中。
所以你的台词
App = React.createFactory(require("app"));
应该变成类似
的样子var App = React.createFactory(require("./app"));