Как мне обслуживать приложение Angular с существующего сервера nodejs? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть приложение Angular 6 и существующее приложение nodejs api. До сих пор я использовал

ng serve

для запуска и сборки приложения angular.

Теперь я хочу обслуживать мое приложение angular с существующего сервера node js.

Как мне это сделать? Я не могу найти какую-либо документацию.

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

У вас есть два способа обслуживания Angular SPA:

  • Обычно dev : сервер, запускаемый через Webpack, то есть ng serve. Dynami c в том смысле, что любая модификация файла запускает перестройку и обновляет вывод.

  • Обычно prod : вы строите все html / js файлы (с ng build [...]) для SPA, которые статически обслуживаются сервером node.

В вашем случае, если вы хотите использовать существующий node сервер, это означает, что вам нужно будет собрать файлы (с ng build), а затем подключить обычный node stati c фрагмент файла, обслуживающий файл, в вашем node приложении.

Будьте осторожны: вам придется делать полную сборку каждый раз, когда вы хотите обновить дисплей. Так что это нормально, если это не так часто, но я не думаю, что это нормально для среды разработки.

0 голосов
/ 22 марта 2020

Шаги:

  1. Do ng build, он создаст папку dist, которую вы можете легко обслуживать из инфраструктуры веб-сервера узла, например express, Hapi или Koa
  2. если вы используете express. js, вы можете использовать сервер angular app.use(express.static(path.join(__dirname, 'dist')));
  3. Теперь используйте URL-адрес сервера узла для обслуживания angular, например http://localhost:nodeport

Если вы используете хапи: проверьте это https://hapi.dev/tutorials/servingfiles/?lang=en_US

======================= ======== basi c express сервер ================

const express = require('express');
const app = express();
const path = require("path");
const fs = require("fs");




//const bodyParser = require('body-parser');
app.use(express.static(path.join(__dirname, 'dist')));
//app.use(bodyParser.json());


//app.use('/api/v1/', require('./api/routes'));

 app.listen(8080,function(err){
   if(!err){
    console.log("server is running at port:8080);
   }
 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...