例如,如果浏览器已禁用javascript,node.js是否仍然有效,或者是否需要回退?
我知道这可能是一个愚蠢的问题,但我试图向朋友证明node.js在服务器端工作并且不依赖于客户端。
答案 0 :(得分:1)
正如@frédéric-hamidi指出的那样运行一个节点服务器然后卷曲它:
<强>的NodeJS 强>
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('I don\'t need js on the browser!');
}).listen(80);
<强>壳强>
curl http://web-07081482-2b2c-4e1b-9b1c-9ab20dccb92c.runnable.com/
你可以告诉他这个演示:
http://runnable.com/VM9-XCkU5E06W8gl/nodejs-so-for-node-js-and-hello-world
答案 1 :(得分:0)
你已经说过了。节点代码在托管应用程序的服务器上解释,而不是在客户端上解释。
您可以通过从已禁用JS的浏览器接收来自节点的服务器的响应来向您的朋友证明。
答案 2 :(得分:0)
即使浏览器禁用了JavaScript(或者开始时也不支持),Node.js本身也会继续工作。它是服务器端环境,因此与浏览器无关。它在客户端甚至可以看到页面之前完成它的工作(或者如果您正在执行这些操作,则执行AJAX响应)。
Node.js无法绕过浏览器的JavaScript设置,但对任何服务器端开发环境都是如此。如果您在Node.js中创建依赖于客户端来计算某些内容并将其发回的内容,那么如果浏览器禁用了JavaScript,那么 将无法正常工作。所以你必须要小心,不要忘记客户端的代码和服务器端的代码,当两种类型的代码使用相同的语言时,稍微更难,但仍然不是很难。只要你这样做,你就没事了。
就个人而言,我最喜欢的这类演示是使用telnet
,正如@FredericHamidi所提到的那样。比telnet
更难以获得更多的功能,因为它几乎不会对你产生任何影响:没有JavaScript,没有CSS,甚至没有HTML。甚至没有HTTP,真的;它不能自己构造请求,所以你必须手动输入它(如果你坚持使用HTTP / 0.9和GET请求你的演示,这不是很糟糕,但我不建议任何更复杂的请求那)。对于未经训练的眼睛,看起来你正在攻击机器。 但Node.js仍会运行,即使您在基本上可能是最简单的客户端上运行。