【问题标题】:How to call node js function from node js client side如何从节点 js 客户端调用节点 js 函数
【发布时间】:2023-12-06 13:04:01
【问题描述】:

我正在玩一个 html 模板,我注意到开发人员不使用 RequireJS 或其他任何东西来要求和调用来自其他节点文件的不同函数。相反,他们在 html 文件中使用它来初始化和调用函数:

<script src="../../assets.js/test.js"></script>

<script type="text/javascript">
        $(document).ready(function(){
            test.initSomeFunction();
        });
    </script>

我在assets/js/test.js 中有以下代码,它在javascript 中定义了initSomeFunction

test = {
  initSomeFunction: function() {
     //Some code
  }

  initAnotherFunction: function() {
     //More code
  }
}

(如果有人能告诉我这个方法叫什么,那会很有帮助,以便我可以进行更多研究。)

当我尝试在主目录/main.js 中的节点应用程序中执行相同操作时,出现了我的问题。节点应用程序本身可以正常工作,但是当我添加这样的内容时:

test2 = {
  initMyFunction: function() {
    console.log("I finally decided to work! Good luck...");
  }
}

并像这样修改我的 html 文件:

<script src="../../main.js"></script>

<script type="text/javascript">
        $(document).ready(function(){
            test.initSomeFunction();
            test2.initMyFunction();

        });
    </script>

那么它就不起作用了。有人可以指出我正确的方向,因为我什至不知道谷歌是什么。我试图避免使用 RequireJS 或其他任何东西,因为我是一个完全的初学者,开发人员使用的方法听起来如此简单和诱人。

【问题讨论】:

  • 这是普通的 javascript。这种技术简称为 HTML 脚本标签。这种技术没有特殊的名称,因为它是设计使用 javascript 的原始方式,所以每个人都简单地假设任何编写 javascript 的人都知道 html。这个假设显然不再正确
  • @bbkrz 在服务器端,你使用 express

标签: javascript html node.js init


【解决方案1】:

希望这个回答对你有所帮助:

我正在使用快递,所以我这样做是为了解决您的问题!

ma​​in.js 文件位置:

修改app.js添加:

      app.use(express.static(path.join(__dirname, '/')));

然后,在视图文件中:

         <html>
         <head>
         <script src="public/javascripts/jquery-1.10.2.min.js">       </script>
         <script src="main.js"></script>
         </head>
         <body>


         <script>
          $(function () {
          //test.initSomeFunction();
           test2.initMyFunction();

          })
         </script>
         </body>
         </html>

打开 chrome 开发者工具。你会看到结果。

【讨论】: