У меня есть приложение, написанное на angularJS и построенное ворчанием. Есть ли способ создать http-сервер из node js и разместить его там. Пожалуйста, поделитесь любым фрагментом кода или документом, который поможет. Благодаря
Node js как http-сервер и хост angularJS SPA
Ответ 1
-
(простейший), если у вас нет логики на стороне сервера, вы можете просто обслуживать клиентскую сторону AngularJS/HTML/css через модуль http-server от npm. https://www.npmjs.com/package/http-server Просто установите его через $ > npm install -g http-server и перейдите в папку клиента, введите http-сервер и нажмите enter.
-
Если у вас написан код на стороне сервера (ExpressJS или обновить веб-api), используйте $ > nodemon server.js
-
Если вы ищете варианты для производственных приложений, рассмотрите навсегда /pm 2 https://www.npmjs.com/package/pm2 https://www.npmjs.com/package/forever
Ответ 2
Используйте следующий код в файле app.js
.
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname, 'public')));
/* GET home page. */
app.get('/', function(req, res, next) {
//Path to your main file
res.status(200).sendFile(path.join(__dirname+'../public/index.html'));
});
module.exports = app;
Запустите файл app.js
, используя node app.js
Ответ 3
Этот пример работает для меня в любом случае
Даже если у вас есть базовый URL или нет
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
/**
* This server should host angular appliation with or without base-url
* The angular static resources should be under './public'
*/
var app = express();
app.use(function(req, res, next) {
console.log('Time:', Date.now() + ":", req.originalUrl)
next()
})
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/base-here-if-any', express.static(path.join(__dirname, 'public')))
app.get('*', function(req, res, next) {
//Path to your main file
res.status(200).sendFile(path.join(__dirname + '/public/index.html'));
});
const port = 3000
app.listen(port, () => console.log('Example app listening on port ${port}!'))