web-dev-qa-db-fra.com

Nœud js en tant que serveur http et hôte angularJS SPA

J'ai une application écrite sur angularJS et construite par grunt. Est-il possible de créer un serveur http à partir du nœud js et de l’héberger là-bas? S'il vous plaît partager un extrait de code ou un document qui pourrait aider. Merci

13
dhana
  1. (plus simple) Si vous n’avez pas de logique côté serveur, vous pouvez simplement servir AngularJS/HTML/css côté client via le module serveur http à partir de npm . https://www.npmjs.com/package/ http-server Installez-le simplement via $> npm install -g http-server et allez dans votre dossier client, tapez http-server et appuyez sur entrée.

  2. Si vous avez un code côté serveur écrit, (ExpressJS ou restify web api), utilisez $> nodemon server.js

  3. Si vous recherchez des options pour les applications de production, pensez à toujours/pm2 https://www.npmjs.com/package/pm2https://www.npmjs.com/package /pour toujours

14
Sutikshan Dubey

Utilisez le code suivant dans votre fichier 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;

Exécutez le fichier app.js en utilisant node app.js

4
Ajay Kumar

Cet exemple fonctionne pour moi dans tous les cas

Même si vous avez base-url ou pas

code source ici

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}!`))

0
Amr Ibrahim