从html文件执行Nodejs脚本

时间:2015-12-08 13:34:14

标签: javascript ajax node.js browserify

我想从html文件中执行nodejs脚本。 我正在尝试使用浏览器,但我收到很多错误,例如" http.createServer不是函数"。

浏览器有什么替代方案吗?

3 个答案:

答案 0 :(得分:4)

浏览器无法替代让你做一些在浏览器环境中根本无法做到的事情......包括启动HTTP服务器。

答案 1 :(得分:1)

在浏览器上启动服务器是不可能的。

没有理智的浏览器会允许这样做,因为它可能导致严重的安全漏洞和攻击。

答案 2 :(得分:1)

您无法在客户端执行node.js脚本

实际上,这种说法并非完全正确。如果脚本只包含浏览器和node.js都可以运行的代码,那么可以某种方式检测它运行的环境并切换到对该环境友好的代码,那么它将会工作。但脚本仅限于其在中运行的环境的功能,因此http.createServer()之类的调用将无法在浏览器中运行。它没有在浏览器中定义,也可能永远不会。从安全角度来看,这太危险了。

可以做的是在node.js中创建服务器端API,并让浏览器通过AJAX 调用它。提供API的脚本将在node.js中运行,因此它可以执行node.js可以执行的任何操作。但是,由于该代码未在浏览器中运行,因此除了返回的内容之外,它无法影响浏览器。

我怀疑你实际上需要两个脚本 - 一个在服务器上,另一个在客户端上 - 彼此通信。如何设置通信取决于您,但如果您要响应AJAX调用启动服务器,那么您将需要非常小心安全性。不过,这是可行的;像webmin这样的应用很常见。