webentwicklung-frage-antwort-db.com.de

Wie man eine HTML-Datei mit Knoten js ausführt

Ich habe eine einfache HTML-Seite mit winkeligen js wie folgt:

    //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));
    };
});

HTML-Datei:

<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>

Ich bin neu bei Knoten js. Ich habe node js server in meinem System installiert, bin aber nicht sicher, wie eine einfache HTML-Datei mit Knoten js ausgeführt wird?

7
Satyadev

Sie können den eingebauten nodejs-Webserver verwenden.

Fügen Sie beispielsweise die Datei server.js hinzu und geben Sie folgenden Code ein:

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);
});

Und nach dem Start des Servers von der Konsole aus mit dem Befehl node server.js. Ihre index.html-Seite wird unter URL http://localhost:8080 verfügbar sein.

15
JILeXanDR

Auch ich sah mich einem solchen Szenario gegenüber, in dem ich eine Web-App in nodejs ausführen musste, wobei index.html der Einstiegspunkt war. Folgendes habe ich getan:

  • node init im Stammverzeichnis der App ausführen (dadurch wird eine package.json-Datei erstellt)
  • installieren Sie Express im Stammverzeichnis der App: npm install --save express (Speichern aktualisiert package.json mit der Expressabhängigkeit).
  • erstellen Sie im Stammverzeichnis Ihrer App einen öffentlichen Ordner, und fügen Sie Ihre Einstiegspunktdatei (index.html) und alle abhängigen Dateien ein (dies dient nur der Vereinfachung, in großen Anwendungen ist dies möglicherweise kein guter Ansatz).
  • Erstellen Sie eine server.js -Datei im Stammverzeichnis der App, in der das Express-Modul des Knotens verwendet wird, der den öffentlichen Ordner aus seinem aktuellen Verzeichnis bereitstellt.
  • 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);
    
  • do node server: Es sollte "Server auf 8000" ausgegeben werden

  • start http: // localhost: 8000/ : Ihre index.html wird aufgerufen

Die Dateistruktur wäre etwas Ähnliches

6
TylerDurden

Installieren Sie einfach http-server global

npm install -g http-server

wo immer Sie eine HTML-Datei ausführen müssen, führen Sie den Befehl http-server .__ aus. Beispiel: Ihre HTML-Datei befindet sich in /home/project/index.html.__ Sie können /home/project/$ http-server

Dadurch erhalten Sie einen Link zum Zugriff auf Ihre Webseiten: http-server Starting up http-server, serving ./ Available on: http://127.0.0.1:8080 http://192.168.0.106:8080

6
Vijaya Simha

Verschieben Sie Ihre HTML-Datei in einen Ordner "www". Erstellen Sie eine Datei "server.js" mit Code:

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

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

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

Führen Sie nach dem Erstellen der Datei den Befehl "node server.js" aus.

0
Ved Prakash

Der mit Abstand einfachste Befehl:

npx http-server

Dies setzt eine vorhandene index.html in dem Verzeichnis voraus, in dem dieser Befehl ausgeführt wird.

Dies wurde bereits von Vijaya Simha erwähnt, aber ich dachte, ich würde es ein bisschen kürzen.

0
codepleb

Dies ist eine einfache HTML-Datei "demo.htm", die im selben Ordner wie die Datei node.js gespeichert ist.

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

Unten befindet sich die Datei node.js, um diese HTML-Datei aufzurufen.

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/');

Öffnen Sie die obige nodejs-Datei in der Eingabeaufforderung und die Meldung "Server läuft unter http://127.0.0.1:8081/ " wird angezeigt. Jetzt in Ihrem Browser Typ " http://127.0.0.1:8081/demo.html ".

0
Divyasshree

Entweder verwenden Sie ein Framework oder Sie schreiben Ihren eigenen Server mit nodejs.

Ein einfacher Dateiserver kann folgendermaßen aussehen:

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