2016-10-22 3 views
3

Я использую Angular CLI, и дополнительно я добавил папку сервера, которая включает файл server.js.Угловой CLI добавить экспресс-сервер

1) Я создал сервер папки в папке Src

2) НПМ установки экспресс --save добавил экспресс зависимости

3) Создан в папке сервера файл server.js

const express = require('express'); 

var app = express(); 
var staticRoot = __dirname; 

app.set('port', (process.env.PORT || 3000)); 

app.use(express.static(staticRoot)); 

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

app.listen(app.get('port'), function() { 
    console.log('app running on port', app.get('port')); 
}); 

4) Мой файл index.html тот же путь, который Угловая CLI создал

->src->index.html 

enter image description here

Ну, мой вопрос - это следующий шаг для запуска моего приложения на сервере экспресс-сервера?

Могу ли я также добавить узел server/server.js в качестве скрипта для одновременного запуска сервера и клиента? После сборки ng я не получаю файл server.js в папке dist?

enter image description here

ответ

1

index.html, который вы ссылаетесь, используется в процессе сборки, а не на местном уровне. Как автономное угловое приложение, ng serve будет работать по умолчанию на localhost:4200. Чтобы он указывал на ваш сервер на задней панели, вы можете use a proxy сделать угловые запросы на /api перенаправить на ваш сервер по номеру localhost:3000. Локально вам просто нужно будет запускать сервер и угловые приложения отдельно.

В рабочей среде вам необходимо будет обслуживать статические файлы из вашего каталога /dist. Ваш сервер должен проверить, что он запущен на производстве, и обслуживать файлы с использованием path.resolve:

+0

Хорошо, большое спасибо за информацию. Но 1) С помощью ng-сервиса я бегу теперь: 4200-портовый сервер: 3000. 2) Что вы имеете в виду, когда мне нужно запускать сервер и угловые приложения отдельно? npm start не делает это со скриптом автоматически? Что я не понимаю, как я могу работать теперь продуктивно? – Tony

+0

@ Тони Я просто имел в виду, что вам нужно запустить два окна терминала. Один работает с угловым приложением (4200), а один запускает экспресс-приложение (3000). Вероятно, было бы более полезно иметь две папки верхнего уровня, каждая из которых имеет свой собственный 'package.json', чтобы вы могли разделить ваши зависимости. – cdbajorin

Смежные вопросы