我是Node.js的新手。开始关注创建Node.js Express + React.js应用程序的Sahat Yalkabov's教程。
我使用SSH(PUTTY)连接到我的服务器,并将端口3000转发到localhost:3000
。但是,当我尝试使用浏览器连接到服务器时,它没有响应,浏览器只显示waiting for localhost
消息。
我以前运行过express
命令,他们的默认项目确实显示在我的浏览器上,因此它不是防火墙。
以下是server.js
:
var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
// Server-side React rendering
var swig = require('swig');
var React = require('react');
var ReactDOM = require('react-dom/server');
var Router = require('react-router');
var RoutingContext = Router.RoutingContext;
var routes = require('./app/routes');
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
// Server-side React rendering
app.use(function(req, res) {
Router.match({ routes: routes, location: req.url }, function(err, redirectLocation, renderProps) {
if (err) {
res.send(500, err.message)
} else if (redirectLocation) {
res.redirect(302, redirectLocation.pathname + redirectLocation.search)
} else if (renderProps) {
var html = ReactDOM.renderToString(<RoutingContext {...renderProps} />);
var page = swig.renderFile('views/index.html', { html: html });
res.send(200, page);
} else {
res.send(404, 'Page Not Found')
}
});
});
app.listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
为了运行服务器,我使用了2个终端,一个运行gulp
,另一个运行npm run watch
,根据上述教程。
我对这一切都很陌生,第一次运行Node.js. 任何帮助将不胜感激!
编辑:在我的项目here中添加了一个git存储库。
答案 0 :(得分:0)
我认为你应该只运行npm run watch
命令。
终端显示Express server listening on port 3000
后,
请在浏览器上打开http://localhost:3000/
。