在 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 代码