我可以使用Node.js 'mirror'作为JavaScript不支持时的回退

Can I use a Node.js 'mirror' as fallback when JavaScript not supported?

本文关键字:不支持 JavaScript 回退 作为 mirror js 可以使 我可以 Node      更新时间:2023-09-26

基本问题

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

我真正追求的是一种架构,这是对这次演讲幻灯片8的字面解释。

与在客户端生成数据结构和创建视图不同,这将在Node中完成,并且可以返回完全形成的HTML。

的背景

我已经写了一个应用程序,它是建立在jQuery, Underscore, Backbone和Mustache堆栈上的(通过RESTful API调用web服务获取数据)。

在浏览器中启用JavaScript时,这一切都工作得很好,但我还没有编写一个服务器端实现作为备用。

当然,我基本上可以用c# . net/python/ruby/etc"重写所有东西"。,但这似乎是一个非常糟糕的解决方案,当你考虑到复制的数量和增加的维护,当JavaScript中有一个完整的功能版本的应用程序可用。

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

例如,

Express.js有一个名为res.render()的函数,它将为你呈现一个模板(在各种模板语言中)。

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

响应whatever.com/test的示例,该示例呈现模板索引。jade,标题变量设置为'My Site':

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

至于在服务器上重用你的整个骨干应用程序,我认为使用jsdom重写大量代码是可能的。使用请求和模板以不同的风格重写你的应用可能更划算。

随着我们在服务器端JS领域的发展,我们可能会越来越多地看到这种情况。

我可能会自己写一些东西,但是正如评论者juandopazo所提到的,这在YUI3中已经是可能的了。

Douglas Crockford在这段关于"Serversideness"的视频中提到了我所谈论的内容(以及YUI的功能)-从03:45开始。