从JavaScript文件访问服务函数

从JavaScript文件访问服务函数,javascript,sails.js,Javascript,Sails.js,对这里的帆船来说是相当陌生的(部分接管了另一个人的项目)。 我创建了一个服务并将其导出: module.exports = { schedule: schedule }; 因此,可以使用Schedule.Schedule访问此文件 我的视图中加载了一个JavaScript文件,但当我尝试调用Schedule.Schedule时,它会说“Schedule未定义”,当我尝试调用时: sails.services.Schedule.schedule() or sails.controller

对这里的帆船来说是相当陌生的(部分接管了另一个人的项目)。 我创建了一个服务并将其导出:

module.exports = {
    schedule: schedule
};
因此,可以使用Schedule.Schedule访问此文件

我的视图中加载了一个JavaScript文件,但当我尝试调用Schedule.Schedule时,它会说“Schedule未定义”,当我尝试调用时:

sails.services.Schedule.schedule() or sails.controllers.Schedule.schedule()
它返回一个错误“未定义sails”

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


Thank=)

需要理解的关键是,您的一些代码是在服务器上运行的(可能是在本地机器或远程linux机器上运行的节点进程),而您的一些代码是由浏览器(chrome、firefox等)运行的

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

  • 通常,
    /assets
    中的脚本由浏览器运行
  • 通常,
    /api
    中的任何内容都由服务器运行
  • sails提供的整个
    模块.export
    require
    框架仅在服务器上可用,在浏览器中不可用
视图是一种有点混乱的混合情况。视图存储在服务器上,当您使用它们时,
之间的所有代码都在服务器上运行。但文件的其余部分被视为文本,不运行或解释,包括任何包含的脚本


只有在浏览器中才能读取和解释脚本标记,并获取和运行脚本。在浏览器中,无法访问
模块。导出
sails
对象等。

需要了解的关键是,您的一些代码在服务器上运行(可能是一个节点进程,在您的本地机器或某个远程linux机器上运行),您的一些代码是通过浏览器(chrome、firefox等)运行的

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

  • 通常,
    /assets
    中的脚本由浏览器运行
  • 通常,
    /api
    中的任何内容都由服务器运行
  • sails提供的整个
    模块.export
    require
    框架仅在服务器上可用,在浏览器中不可用
视图是一种有点混乱的混合情况。视图存储在服务器上,当您使用它们时,
之间的所有代码都在服务器上运行。但文件的其余部分被视为文本,不运行或解释,包括任何包含的脚本


只有在浏览器中才能读取和解释脚本标记,并获取和运行脚本。在浏览器中,无法访问
模块。导出
导航
对象等。

如何在视图中加载脚本?您是否将脚本放入标记(执行服务器端代码的默认EJS标记)中?您好,我只是使用标准HTML。加载文件时没有问题,但此文件无法访问控制器或服务。如何在视图中加载脚本?您是否将脚本放入标记(执行服务器端代码的默认EJS标记)中?您好,我只是使用标准HTML。这正在加载文件,没有问题,但此文件无法访问控制器或服务。您好,谢谢您提供的信息,我必须更新视图才能运行服务器端代码。我将查看一些文档,了解如何包含
部分。仍然可以将DOM元素传递到服务器端吗?(这本质上是一种安排未来任务的表单)不,通常不会将整个DOM元素或DOM事件之类的东西传递给服务器。这很烦人,但很有必要——在脚本中,您需要编写一个ajax调用,向服务器发送一条消息,告诉服务器安排任务。在服务器上,您必须编写接收ajax调用的控制器方法,在那里您可以使用模块来调度任务。你真的需要把它看作是两个孤立的代码环境,只在短时间内进行通信,而不是自由地来回传递代码。好的,这很有意义,感谢帮助,现在就开始=)嗨,谢谢你提供的信息,我必须更新我的视图才能运行服务器端代码。我将查看一些文档,了解如何包含
部分。仍然可以将DOM元素传递到服务器端吗?(这本质上是一种安排未来任务的表单)不,通常不会将整个DOM元素或DOM事件之类的东西传递给服务器。这很烦人,但很有必要——在脚本中,您需要编写一个ajax调用,向服务器发送一条消息,告诉服务器安排任务。在服务器上,您必须编写接收ajax调用的控制器方法,在那里您可以使用模块来调度任务。您真的需要将其视为两个独立的代码环境,它们只在短时间内进行通信,而不是自由地来回传递代码。好的,这很有意义,感谢您的帮助,现在就开始=)