如何从客户端javascript调用节点功能? (HTML)

时间:2017-04-05 11:00:23

标签: javascript jquery html node.js ajax

我有一个名为index.js的节点应用程序运行express。前段时间我决定将网站模板和我的节点应用程序合并在一起,一切正常。我可以使用以下代码将其他路径加载到节点应用程序(index.js)中。

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

现在,我可以使用express提供不同的html页面,这意味着我的应用程序可以访问assets文件夹和文件夹中的内容。

现在,assets文件夹包含名为js,css和...的其他文件夹.HTML模板正在加载jsassets文件夹中的所有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?");
  }
}

我正在尝试从index.js

调用test.js内的以下函数
// /index.js
app.get("/hey", function(req, res) {
  res.send("wassaaa!!");
});

到目前为止,我已经尝试了以下代码,但它没有调用该函数:

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

我还在module.exports中尝试了index.js,但当我在test.js中提出要求时,我收到一条错误消息,表示我无法在客户端上搜索内容侧。

我还查看了一些关于require.js的示例,但这些示例主要解释了如何在HTML文件中加载require.js而不是直接在js文件中加载。

总结一下,这就是我想要发生的事情:HTML文件触发test.js中的函数,然后test.jsindex.js获取一些数据并将其传递给再次使用HTML文件...我试图避免在HTML文件中编写javascript代码。

如果有人知道如何以更简单的方式实现我想要做的事情,我也愿意接受建议。提前谢谢......

2 个答案:

答案 0 :(得分:0)

您应该在Route2中编写该函数并将其导入View2。例如,函数test.js返回&#34; wassaaa !!&#34;在test.js中,在index.js中使用index.js

答案 1 :(得分:0)

您需要使用URL来实现这一目标。以下是您的开发环境的示例,假设您的应用正在侦听端口8800:

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