Luud van Keulen Luud van Keulen - 9 months ago 80
Node.js Question

Hosting Angular 4 app with node.js not working

I am trying to host an Angular 4 application with Node.js

I am following this guide: https://javascriptrocks.wordpress.com/2016/06/04/express-with-angular-cli-in-5-minutes/

However when I start the node.js server it just keeps on loading and doesnt show any page.
Folder layout:

-dist

--assets

--app.js

--index.html

--inline.xxx.bundle.js

--main.xxx.bundle.js

--polyfills.xxx.bundle.js

--styles.xxx.bundle.css

--vendor.xxx.bundle.js


The app.js contents:

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var logger = require('morgan');

var app = express();

app.use(logger('dev'));
app.use(bodyParser.json);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(__dirname));

app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});

app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

var port = process.env.PORT || 8080;
app.listen(port, function () {
console.log('Server running at port ' + port);
});

module.exports = app;


I start it with:
node dist/app.js


EDIT:

I got it working now. Not sure if its the right way:

var express = require('express');
var app = express();
var path = require('path');

app.use(express.static(path.join(__dirname, '/dist')));

app.get('/*', function(req, res) {
res.

sendFile(path.join(__dirname + '/dist/index.html'));
});

app.listen(8080, function () {
console.log('App started');
});

Answer Source

Eventually got it working this way:

var express = require('express');
var app = express();
var path = require('path');

app.use(express.static(path.join(__dirname, '/dist')));

app.get('/*', function(req, res) {
  res.

sendFile(path.join(__dirname + '/dist/index.html'));
});

app.listen(8080, function () {
  console.log('App started');
});
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download