简体   繁体   中英

Setting up MEAN stack not rendering app-root

I'm trying to setup a basic mean stack by following this guide , but the client doesn't seem to render the app instead the body contains,

<body>
  <app-root></app-root>
</body>

The file structure is exactly the same as a blank angular cli project except the addition of two extra files.

PLUS: npm install --save ejs cors express body-parser

routes/index.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
    res.render('index.html');
});

module.exports = router;

server.js

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

var index = require('./routes/index');

// app
var app = express();

// cors
app.use(cors());

// views
app.set('views', path.join(__dirname, 'src'));

// engine
app.set('view enginer', 'ejs');
app.engine('html', require('ejs').renderFile);

// angular  dist
app.use(express.static(__dirname + '/dist'));

// body bodyParser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

// route 
app.use('/', index);


// Initialize the app.
var server = app.listen(process.env.PORT || 3000, function () {
  var port = server.address().port;
  console.log("App now running on port", port);
});

I run an ng build and node server.js but get a blank white page in the browser.

Perhaps there is a breaking change that I'm not aware of since that guide was using angular2 (I'm using angular 6).

Since your index.html isn't directly inside the dist folder (rather, it is inside a sub-folder for some reason), try changing app.use(express.static(__dirname + '/dist')); to app.use(express.static(__dirname + '/dist/<your project name here>'));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM