是否可以从网页运行节点脚本

Is it possible to run a Node script from a web page?

本文关键字:运行 节点 脚本 网页 是否      更新时间:2023-09-26

我现在正在寻找几天,但没有得到答案。我想做以下几点:

  1. 用户连接到编辑器.html(Apache2 与基本 http 身份验证)
  2. 用户想用他的user/pass在服务器上打开一个文件(比如说/home/user1/myfile.txt)(与passwd相同)
  3. 节点.js脚本从上面获得用户权限的启动,用户可以编辑文件

节点脚本将通过 websocket 处理连接并读/写文件。

我认为最大的问题是无法从网页在服务器上运行节点脚本......而且我不想涉及任何 php/cgi 脚本......只有 Apache 和 Node.js/JS。

如果您知道这真的是不可能的,也请发表评论或回答......

谢谢!

柯达

编辑:工作流应如下所示:用户访问网页 ->输入他的凭据(与 passwd 中的相同) ->节点.js脚本以登录用户的用户权限开始 -> 使用用户权限读取或写入文件

最大的问题:谁启动 Node.js 脚本?阿帕奇?如何?

我讨厌成为这个人,但是...

这不是 node 的设计方式,它被设计为使用事件循环,我建议让 node 提供静态文件,也许使用 apache 作为代理,然后当有人请求某个页面时,做需要做的事情,如果你真的必须生成一个子进程,请使用 child_process.spawn, 至于用户的权限,我建议只传入一个代码,比如 1=admin、2=user、3=guest,子进程可以做需要的事情。

使用 Socket.io - Socket.IO 官方网站

您还可以将 Express 与套接字 IO 结合使用来创建单独的应用服务器。 - 快递JS网站

您可能需要考虑允许用户使用其服务器端帐户直接连接的安全隐患。还有许多可用的应用程序已经这样做了,您可以考虑实现这些应用程序,而不是编写自己的应用程序,并具有所需的所有正确嵌入的安全性。

让您的用户无需任何身份验证即可获得静态身份验证.html页面(通过 apache)。

让表单提交操作是一些身份验证.js(节点.js脚本)。此身份验证.js检查用户的身份验证是否成功。如果是这样,它会启动node.js服务器,在其上设置 socket.io 并将用户重定向到某个编辑器.html。

在这种情况下,您可以注意到存在基于节点.js脚本的身份验证。如果你想要基本的apache2,我可以向你推荐下一个场景:

服务器上有身份验证.html和编辑器.html页面。最后一个放在/private文件夹中并直接访问此文件夹被 .htaccess 拒绝。因此,当用户在身份验证中传递 apache2 身份验证时.html他会得到这个身份验证.html这是一个空文档onload带有将 AJAX 发送到身份验证.js(Node.js脚本)的事件处理程序。节点.js获取private/editor.html并将其发送给用户,如/editor.html

在这种情况下,如果不通过身份验证,用户永远无法访问编辑器。在身份验证节点之后.js服务器启动并设置 socket.io 一切正常。

我找到了一个解决方案:

可以使用mod-auth-external为apache编写自定义身份验证程序:https://code.google.com/p/mod-auth-external/

启用基本身份验证后,Web 服务器会将凭据传递给脚本/程序,然后可以运行节点应用程序。