如何从客户端JavaScript调用节点function? (HTML)

我有一个名为index.js的节点应用程序运行快车。 前一段时间,我决定合并一个网站模板和我的节点应用程序,一切工作正常到这里。 我能够通过使用下面的代码加载到节点应用程序( index.js )的其他path。

 var express = require('express'); var app = express(); app.use('/assets', express.static(path.join(__dirname, '/assets'))); app.use(express.static(path.join(__dirname, '/'))); 

现在,我可以使用快递服务不同的HTML页面,这意味着我的应用程序能够访问assets文件夹和文件夹内的内容。

现在,资产文件夹包含其他文件夹,称为js,css和… HTML模板正在从assetsjs文件夹加载所有的javascript代码。 请注意,javascript代码不会写入HTML文件中。 以下是我的HTML代码中如何触发脚本的示例:

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

这里是以下目录中的JavaScript代码:

 // assets/js/test.js test = { theFunction: function() { res.send("finally..."); console.log("sup?"); } } 

我想从test.js index.js调用以下函数:

 // /index.js app.get("/hey", function(req, res) { res.send("wassaaa!!"); }); 

到目前为止,我已经尝试了下面的代码,但它不会调用该函数:

  $.get('/hey').success(function(response) { $scope.final = response; console.log(response); }); 

我也试过index.js module.exports ,但是当我在test.js需要时,我得到一个错误,说我不能在客户端需要东西。

我也看了一些关于require.js的例子,但是这些例子大多解释了如何在HTML文件中加载require.js,而不是直接加载到js文件中。

总结起来,这里是我想要发生的事情:HTML文件触发test.js的函数,然后test.jsindex.js获取一些数据,并将其传递给HTML文件…我试图避免写HTML文件中的JavaScript代码。

如果有人知道如何以更简单的方式实现我所要做的,我也乐意提供build议。 提前致谢…

您应该在test.js编写函数并将其导入到index.js 。 例如,返回“wassaaa !!”的函数getResponse() 在test.js和index.js中使用res.send(test.getResponse())