在 Node.js 中加载 html 页面

Posted

技术标签:

【中文标题】在 Node.js 中加载 html 页面【英文标题】:Loading html page in Node.js 【发布时间】:2014-09-26 14:18:51 【问题描述】:

如何使用 NodeJs 加载 html 页面?

【问题讨论】:

【参考方案1】:

这取决于您使用什么来呈现页面。如果您在前端使用 AngularJS,请将您的 HTML 作为字符串或使用 express 中间件的 sendfile() 方法发送。基本上 node 和 express 用于调用 rest API 以将您的 HTML 作为字符串并使用 AngularJS 进行渲染。

例如

var express = require('express');

var app = express.createServer();

app.use(express.staticProvider(__dirname + '/public'));

app.all('/homePage', function(req, res) 
  res.sendFile('home.html');
);

app.all('*', function(req, res) 
  res.sendFile('index.html');
);

在这里,index HTML 是带有 ng-view 指令的 Angular 单页应用程序。在客户端渲染您从服务器获取的所有 HTML。

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>Welcome</title>
        <link rel="stylesheet" href="css/bootstrap-theme.css">
        <link rel="stylesheet" href="css/style.css">

        <link href="css/bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="js/javascript.js"></script>
        <script type="text/javascript" src="js/bootstrap.min.js"></script>
        <script type="text/javascript" src="js/newangular.js"></script>
        <script type="text/javascript" src="js/newroute1.js"></script>
        <script type="text/javascript" src="js/ParentController.js"></script>
        <script type="text/javascript" src="js/clintSIdeRoutes.js"></script>
        <script type="text/javascript" src="js/services.js"></script>

    </head>
    <body ng-app="schoolApp" ng-controller="MainController">
    <div class="container">
        <div class="row"><span class="col-md-12"><h1>Header Goes here</h1></span></div>
        <div ng-view></div><!-- this is place where your html is rendered --> 
    </div>
    </body>
    </html>

以下是链接:

https://github.com/bharat-daffodilsw/school

这是我第一次尝试分享应用。希望这可以帮助。目前,我有空的时候正在研究它。所以它不完整但工作正常。

【讨论】:

【参考方案2】:

此代码应从 html 页面加载数据。

var http = require('http');
http.get('http://www.google.com', onGotData);
function onGotData(res) 
  var chunks = [];
  res.on('data', onGotData);
  res.on('end', onEnd);
  function onGotData(chunk) 
    chunks.push(chunk);
  
  function onEnd() 
    console.log(chunks.join(''));
  

【讨论】:

【参考方案3】:

用户express。关注这个question

var express = require('express');

var app = express.createServer();
app.register('.html', require('jade'));
//app.engine for version 3


app.use(express.staticProvider(__dirname + '/public'));
//place your html in public folder beside the app.js

app.get('/', function(req, res) 

    res.render('index.html');
);

// spin up server
app.listen(8080, '127.0.0.1')

【讨论】:

以上是关于在 Node.js 中加载 html 页面的主要内容,如果未能解决你的问题,请参考以下文章

Node.js app.js 不显示 HTML 页面,而是显示 HTML 代码

在 node.js CLI 中加载 jQuery [重复]

在 Node js 应用程序 + MongoDb 中加载数据时出现错误

Node.js权威指南 - 模块与npm包管理工具

模块的加载机制 丨Node.js模块化

node.js 模块化