如何使用节点js运行html文件

我有一个简单的HTML页面,如下所示:

//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文件:

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

我是节点js的新手。 我在我的系统中安装了节点js服务器,但我不知道如何使用节点js运行一个简单的html文件?

您可以使用内置的nodejs Web服务器。

添加文件server.js为例,并提出以下代码:

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

然后从命令node server.js启动服务器从控制台。 您的index.html页面将在URL http://localhost:8080上可用

我也面临这样的情况,我不得不在nodejs中运行一个以index.html为入口的web应用程序。 这是我做的:

  • 在app的根目录下运行node init (这会创build一个package.json文件)
  • 在app的根目录下安装express: npm install --save express (save会更新package.json和express依赖)
  • 创build一个公共文件夹在你的应用程序的根目录,并把你的入口点文件(index.html)及其所有依赖文件(这只是为了简化,在大型应用程序这可能不是一个好办法)。
  • 在应用程序的根目录下创build一个server.js文件,我们将在其中使用将从当前目录服务公用文件夹的节点express模块​​。
  • 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 :它应该输出“8000上的服务器”

  • 启动http:// localhost:8000 / :你的index.html将被调用

文件结构将是类似的东西

要么使用框架,要么使用nodejs编写自己的服务器。

一个简单的文件服务器可能是这样的:

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