当JavaScript不受支持时,我可以使用Node.js'镜像'作为后备吗?

时间:2011-12-24 14:01:40

标签: javascript web-applications node.js

基本问题

是否有可能回退到现有客户端,JavaScript密集型站点的服务器端Node.js实现。特别适用于没有JavaScript的用户(或者,如果客户端的浏览器无法满足某些性能要求)?

我真的在追求一种对slide 8 of this presentation的字面解释的架构。

而不是在客户端上形成数据结构和创建视图的小胡子/主干,而不是在Node中完成,并且可以返回完整形式的HTML。

背景

我编写了一个构建在jQuery,Underscore,Backbone和Mustache堆栈上的应用程序(对Web服务进行RESTful API调用以获取数据)。

这在浏览器中启用JavaScript时效果很好,但我还没有将服务器端实现编写为后备。

当然,我基本上可以在C#.NET / Python / Ruby等中“重写一切”,但是当你考虑重复数量和增加维护时,这似乎是一个非常糟糕的解决方案。 JavaScript中提供的应用程序的完整功能版本。

2 个答案:

答案 0 :(得分:0)

你可以这样做。使用像express.js:http://expressjs.com/

这样的东西更容易 例如,Express.js有一个名为res.render()的函数,它将为您呈现一个模板(使用各种模板语言)。

您的客户端应用程序的功能必须重写为没有js(显然)。但你甚至可以动态生成锚标记并将它们作为变量传递给服务器上的模板。

回复以使用标题变量设置为“我的网站”的模板index.jade的whatever.com/test的示例:

app.get('/test', function(req, res){
    res.render('index.jade', { title: 'My Site' });
});

至于在服务器上重用整个骨干应用程序,我认为可以使用jsdom并重写大量代码。使用请求和模板以不同的方式重写您的应用程序更有成本效益。

答案 1 :(得分:0)

看起来这可能是我们在服务器端JS世界中更多地看到的东西。

我可能会自己写一些东西,但是作为评论者(在OP上)juandopazo提及,这已经可以用YUI3。

道格拉斯·克罗克福德(Douglas Crockford)在this video on 'Serversideness'中提到我正在谈论的事情(以及YUI的行情) - 请参阅03:45。