我的5页网站上的所有页面都应该使用Node.js服务器输出.
大多数页面内容都是静态的.在每个页面的底部,都有一些动态内容.
我的node.js代码目前看起来像:
var http = require('http');
http.createServer(function (request, response) {
console.log('request starting...');
response.writeHead(200, { 'Content-Type': 'text/html' });
var html = '<!DOCTYPE html><html><head><title>My Title</title></head><body>';
html += 'Some more static content';
html += 'Some more static content';
html += 'Some more static content';
html += 'Some dynamic content';
html += '</body></html>';
response.end(html, 'utf-8');
}).listen(38316);
Run Code Online (Sandbox Code Playgroud)
我确信这个例子有很多不妥之处.请赐教!例如:
Jos*_*osh 28
就个人而言,我使用的是具有更高级别构造的服务器.例如,看一下expressjs框架 - http://expressjs.com/
您将从此包中感兴趣的结构是:
例如在玉中:
!!! 5
html(lang="en")
head
title= pageTitle
script(type='text/javascript')
if (foo) {
bar()
}
body
h1 Jade - node template engine
#container
- if (youAreUsingJade)
p You are amazing
- else
p Get on it!
Run Code Online (Sandbox Code Playgroud)
变为:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Jade</title>
<script type="text/javascript">
if (foo) {
bar()
}
</script>
</head>
<body>
<h1>Jade - node template engine</h1>
<div id="container">
<p>You are amazing</p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果你喜欢一些不那么激烈的东西我会说看胡子或其他一些看起来更像普通酱汁的引擎.
这些天答案并不那么简单.
如果您不需要由Google编制索引,请考虑使用socket.io和使用客户端模板制作单页应用程序jQuery Templates.对于这种类型的架构,甚至有新兴的node.js框架,例如socketstream.
如果您需要由Google编制索引,是否需要将动态内容编入索引?如果是的话,可以考虑使用express以及诸如服务器端模板ejs,jade或mustache.另一种(气馁的)方法可能是在服务器上从JSON生成XML并使用XSLT前端.
如果只需要索引静态内容,请考虑express在服务器上使用,但不要在服务器上生成任何动态HTML.相反,使用AJAX或socket.io将JSON格式的动态内容发送到客户端,并使用客户端模板(如jQuery Templates.
不要考虑服务器端DOM:DOM不能扩展复杂的布局,你会陷入选择器和DOM调用之中.甚至客户端开发人员也了解并实现了客户端模板.一种新的有前途的方法是weld库.它提供了两全其美的优点,但尚未成熟,尚未用于生产(例如,不支持条件渲染等简单的事物).