我想从html文件中执行nodejs脚本。 我正在尝试使用浏览器,但我收到很多错误,例如" http.createServer不是函数"。
浏览器有什么替代方案吗?
答案 0 :(得分:4)
浏览器无法替代让你做一些在浏览器环境中根本无法做到的事情......包括启动HTTP服务器。
答案 1 :(得分:1)
在浏览器上启动服务器是不可能的。
没有理智的浏览器会允许这样做,因为它可能导致严重的安全漏洞和攻击。
答案 2 :(得分:1)
您无法在客户端执行node.js脚本。
实际上,这种说法并非完全正确。如果脚本只包含浏览器和node.js都可以运行的代码,那么或可以某种方式检测它运行的环境并切换到对该环境友好的代码,那么它将会工作。但脚本仅限于其在中运行的环境的功能,因此http.createServer()
之类的调用将无法在浏览器中运行。它没有在浏览器中定义,也可能永远不会。从安全角度来看,这太危险了。
可以做的是在node.js中创建服务器端API,并让浏览器通过AJAX 调用它。提供API的脚本将在node.js中运行,因此它可以执行node.js可以执行的任何操作。但是,由于该代码未在浏览器中运行,因此除了返回的内容之外,它无法影响浏览器。
我怀疑你实际上需要两个脚本 - 一个在服务器上,另一个在客户端上 - 彼此通信。如何设置通信取决于您,但如果您要响应AJAX调用启动服务器,那么您将需要非常小心安全性。不过,这是可行的;像webmin这样的应用很常见。