与客户端脚本nodejs共享模块功能

时间:2016-05-30 20:48:45

标签: javascript node.js module

我做了一个函数来检查某人是否在用户控制器模块中登录了该网站:

exports.isLoggedIn = function(req, res, next) {
    if (req.user) {
        return true;
    } else {
        return false;
    }
};

我不知道如何在客户端的导入脚本中使用它。我无法在网上找到一个好的解决方案,所以我想我会问自己这个问题。

如果我在.html中导入脚本,我会收到一条错误,指出它不知道该节点所具有的require()函数。

我希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:2)

如果您希望客户端访问仅在服务器上可用的某些数据,则需要从客户端向服务器发送ajax调用,并且需要在服务器上创建路由以响应该ajax调用。

客户端代码仅在客户端上运行,无法直接访问服务器上的任何数据。

服务器代码仅在服务器上运行,无法直接访问客户端上的任何数据。

要在两者之间进行通信,您必须从一个发送请求到另一个,然后返回响应。通常,这是通过从客户端发送到服务器的Ajax调用来完成的。您还可以在两者之间建立webSocket连接,然后客户端或服务器可以将数据发送到另一个。

在创建原始页面内容时,服务器还有机会在页面本身中嵌入设置或值,可以是Javascript变量,HTML值,甚至是cookie。这显然必须在呈现页面时提前完成,因此它不能成为客户端在页面呈现给客户端之后提出的请求。

仅供参考,在您展示的特定示例中,客户端通常能够通过页面中的某个状态(存在特定cookie)或页面中嵌入的其他内容来判断它是否已登录由服务器。这不一定是安全的,并且不是服务器判断请求是否已登录的方式,但通常客户端逻辑可以决定它的行为方式。