转发的Localhost上的Node.js Express服务器 - 没有响应

时间:2015-10-23 16:24:31

标签: javascript node.js express reactjs

我是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存储库。

1 个答案:

答案 0 :(得分:0)

我认为你应该只运行npm run watch命令。 终端显示Express server listening on port 3000后, 请在浏览器上打开http://localhost:3000/