2017-01-24 4 views
1

Я пытаюсь подключить backend (NodeJS, Express) с Frontend (Angular 2), но у вас есть проблема.MEAN приложение. Два сервера одновременно Express, NodeJS, Angular 2

Когда я запускаю два сервера отдельно, как на стороне клиента, так и на стороне сервера работают нормально. В моей ситуации: LOCALHOST: 4200 - Угловые LOCALHOST: 3000 - NodeJS, Экспресс

Когда я сделать любой статический HTML-файл в моей папке Views, она работает правильно, но когда я изменить содержимое файла HTML в Angular Index.html, который использует компоненты, он не работает. Я имею в виду, он работает, но не загружает мои компоненты.

Я полагаю, что проблема в конфигурации, и мой index.html не знает, как найти и загрузить компоненты, но я не понимаю, где именно может быть ошибка.

Когда я пытаюсь запустить оба сервера в одном порту, моя внешняя часть перестает работать.

Я использую Angular-CLI, NodeJS, Express и EJS.

Мой server.js код:

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

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

var port = 3000; 

var app = express(); 

app.set('views', path.join(__dirname, 'views')); 
app.set('view enjine', 'ejs'); 
app.engine('html', require('ejs').renderFile); 
app.use(express.static(path.join(__dirname, 'views'))); 

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

app.use('/', index); 
app.use('/api', tasks); 

app.listen(port, function() { 
    console.log('Server started on port ' + port); 
}); 

В МАРШРУТЫ папку мой index.js код:

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

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

module.exports = router; 

Мои папки структура: Picture of foldes

node_modules 
routes 
ruen-app 
views 
package.json 
server.js 

" ruen-app "- это моя клиентская (угловая 2) папка.

Итак, мои вопросы:

1) Как соединить эти две части?

2) Правильно ли запускать два сервера одновременно - одно для интерфейса, другое для бэкэнда?

3) Какова наилучшая практика для приложений MEAN для начала с нуля? Я имею в виду, что лучший способ - два сервера или один?

ответ