web-dev-qa-db-fra.com

Comment exécuter un fichier HTML en utilisant le noeud js

J'ai une simple page html avec js angulaire comme suit:

    //Application name
    var app = angular.module("myTmoApppdl", []);

    app.controller("myCtrl", function ($scope) {
        //Sample login function
        $scope.signin = function () {
            var formData =
                    {
                        email: $scope.email,
                        password: $scope.password
                    };
        console.log("Form data is:" + JSON.stringify(formData));
    };
});

Fichier HTML:

<html>
    <head>
        <link href="bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>

    <body ng-app="myTmoApppdl" ng-controller="myCtrl">
        <div class="container">
            <div class="form-group">
                <form class="form" role="form" method="post" ng-submit="signin()">
                    <div class="form-group col-md-6">
                        <label class="">Email address</label>
                        <input type="email" class="form-control" ng-model="email" id="exampleInputEmail2" placeholder="Email address" required>
                    </div>
                    <div class="form-group col-md-6">
                        <label class="">Password</label>
                        <input type="password" class="form-control" id="exampleInputPassword2" ng-model="password" placeholder="Password" required>
                    </div>
                </form>
                <button type="submit" class="btn btn-primary btn-block">Sign in</button>
            </div>
        </div>
    </body>

    <script src="angular.min.js" type="text/javascript"></script>

    <!--User defined JS files-->
    <script src="app.js" type="text/javascript"></script>
    <script src="jsonParsingService.js" type="text/javascript"></script>
</html>

Je suis nouveau sur le noeud js. J'ai installé le serveur noeud js sur mon système mais je ne sais pas comment exécuter un simple fichier html à l'aide du noeud js?

7
Satyadev

Vous pouvez utiliser le serveur Web intégré de nodejs.

Ajoutez le fichier server.js par exemple et mettez le code suivant:

var http = require('http');
var fs = require('fs');

const PORT=8080; 

fs.readFile('./index.html', function (err, html) {

    if (err) throw err;    

    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(PORT);
});

Et après le démarrage du serveur depuis la console avec la commande node server.js. Votre page index.html sera disponible sur l'URL http://localhost:8080

15
JILeXanDR

J'ai moi aussi été confronté à un tel scénario dans lequel je devais exécuter une application Web dans nodejs avec index.html comme point d'entrée. Voici ce que j'ai fait:

  • lancez node init à la racine de l'application (cela créera un fichier package.json)
  • installer express à la racine de l'application: npm install --save express (save mettra à jour package.json avec une dépendance express)
  • créez un dossier public à la racine de votre application et mettez votre fichier de point d'entrée (index.html) et tous ses fichiers dépendants (ceci est juste pour simplifier, dans de grandes applications cela pourrait ne pas être une bonne approche).
  • Créez un fichier server.js à la racine de l'application dans lequel nous utiliserons un module express de noeud qui servira le dossier public à partir de son répertoire actuel.
  • server.js

    var express = require('express');
    var app = express();
    app.use(express.static(__dirname + '/public')); //__dir and not _dir
    var port = 8000; // you can use any port
    app.listen(port);
    console.log('server on' + port);
    
  • node server: il devrait générer "serveur sur 8000"

  • start http: // localhost: 8000/ : votre index.html sera appelé

La structure du fichier serait quelque chose de similaire

6
TylerDurden

Il suffit d'installer serveur http globalement

npm install -g http-server

si vous avez besoin d'exécuter un fichier HTML, exécutez la commande http-server Par exemple, votre fichier HTML se trouve dans /home/project/index.html.__ vous pouvez faire /home/project/$ http-server

Cela vous donnera un lien pour accéder à vos pages Web: http-server Starting up http-server, serving ./ Available on: http://127.0.0.1:8080 http://192.168.0.106:8080

6
Vijaya Simha

Déplacez votre fichier HTML dans un dossier "www". Créez un fichier "server.js" avec le code:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/www'));

app.listen('3000');
console.log('working on 3000');

Après la création du fichier, exécutez la commande "node server.js"

0
Ved Prakash

Ceci est un simple fichier html "demo.htm" stocké dans le même dossier que le fichier node.js.

<!DOCTYPE html>
<html>
  <body>
    <h1>Heading</h1>
    <p>Paragraph.</p>
  </body>
</html>

Ci-dessous se trouve le fichier node.js pour appeler ce fichier html.

var http = require('http');
var fs = require('fs');

var server = http.createServer(function(req, resp){
  // Print the name of the file for which request is made.
  console.log("Request for demo file received.");
  fs.readFile("Documents/nodejs/demo.html",function(error, data){
    if (error) {
      resp.writeHead(404);
      resp.write('Contents you are looking for-not found');
      resp.end();
    }  else {
      resp.writeHead(200, {
        'Content-Type': 'text/html'
      });
      resp.write(data.toString());
      resp.end();
    }
  });
});

server.listen(8081, '127.0.0.1');

console.log('Server running at http://127.0.0.1:8081/');

Intégrez le fichier nodejs ci-dessus dans la commande Invite et le message "Le serveur fonctionnant à http://127.0.0.1:8081/ " s'affiche. Maintenant dans votre navigateur Tapez " http://127.0.0.1:8081/demo.html ".

0
Divyasshree

Soit vous utilisez un framework, soit vous écrivez votre propre serveur avec nodejs.

Un serveur de fichiers simple peut ressembler à ceci:

import * as http from 'http';
import * as url from 'url';
import * as fs from 'fs';
import * as path from 'path';

var mimeTypes = {
     "html": "text/html",
     "jpeg": "image/jpeg",
     "jpg": "image/jpeg",
     "png": "image/png",
     "js": "text/javascript",
     "css": "text/css"};

http.createServer((request, response)=>{
    var pathname = url.parse(request.url).pathname;
    var filename : string;
    if(pathname === "/"){
        filename = "index.html";
    }
    else
        filename = path.join(process.cwd(), pathname);

    try{
        fs.accessSync(filename, fs.F_OK);
        var fileStream = fs.createReadStream(filename);
        var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
        response.writeHead(200, {'Content-Type':mimeType});
        fileStream.pipe(response);
    }
    catch(e) {
            console.log('File not exists: ' + filename);
            response.writeHead(404, {'Content-Type': 'text/plain'});
            response.write('404 Not Found\n');
            response.end();
            return;
    }
    return;
    }
}).listen(5000);
0
Matthias