从 JavaScript 个文件访问服务函数

Accessing Service Function from JavaScript Files

在这里对 Sails 很陌生(部分接管了另一个项目)。 我创建了一项服务并将其导出:

module.exports = {
    schedule: schedule
};

因此可以使用 Schedule.schedule 访问。

我有一个 JavaScript 文件正在我的视图中加载,但是当我尝试调用 Schedule.schedule 时它说 "Schedule is not defined",当我尝试调用时:

sails.services.Schedule.schedule() or sails.controllers.Schedule.schedule()

它 returns 一个错误 "sails is not defined"。

我过去只使用过 Angular,但这只是航行,看起来我无法从视图访问我的控制器或服务,这是正确的吗?

谢谢=)

要理解的关键是您的某些代码 运行 在 Server 上(这可能是 sails lifted 的节点进程在你的本地机器上,或者一些远程 linux 盒子上),你的一些代码是 浏览器 (chrome、firefox 等)运行 ).

通常,这些文件不会一起工作。

  • 通常,/assets 中的脚本是 运行 由浏览器
  • 一般来说,/api 中的任何内容都是 运行 服务器
  • sails 提供的整个 module.exportrequire 框架只能在服务器上使用,不能在浏览器中使用。

视图是一种有点混乱的混合情况。视图存储在服务器上,当您使用它们时,<% %> 之间的所有代码都在服务器上 运行。但文件的其余部分被视为文本,而不是 运行 或解释,包括任何包含的脚本。

只有在浏览器中,您的脚本标签才会被读取和解释,脚本被提取并 运行。在浏览器中,无法访问 module.exportssails 对象等