当前位置: 首页 > 面试题库 >

如何从javascript调用node.js服务器端方法?

皮弘博
2023-03-14
问题内容

我是Node.js的新手,但是通过使用它我对套接字流Web框架有了一些了解,我可以轻松地从JavaScript调用服务器端的node.js方法。不使用该框架,我不知道该怎么做。如何从JavaScript调用node.js方法?

以下代码使用套接字流调用服务器端方法。因此,我想在不使用此框架的情况下调用相同的服务器端方法。

ss.rpc('FileName.methodName',function(res){ 
    alert(res);         
});

问题答案:

我建议使用Socket.IO

服务器端代码

var io = require('socket.io').listen(80); // initiate socket.io server

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' }); // Send data to client

  // wait for the event raised by the client
  socket.on('my other event', function (data) {  
    console.log(data);
  });
});

和客户端

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost'); // connec to server
  socket.on('news', function (data) { // listen to news event raised by the server
    console.log(data);
    socket.emit('my other event', { my: 'data' }); // raise an event on the server
  });
</script>

或者, 您可以使用路由器功能,该功能根据客户端的特定请求调用某些功能

var server = connect()
    .use(function (req, res, next) {
      var query;
      var url_parts = url.parse(req.url, true);
      query = url_parts.query;

      if (req.method == 'GET') {
        switch (url_parts.pathname) {
            case '/somepath':
            // do something
            call_some_fn()
            res.end();
            break;
          }
        }
    })
    .listen(8080);

AJAX使用JQuery 触发请求

$.ajax({
    type: 'get',
    url: '/somepath',
    success: function (data) {
        // use data
    }
})


 类似资料:
  • 问题内容: 我有一个带有按钮的HTML页面。当我单击该按钮时,我需要调用REST Web服务API。我尝试在任何地方在线搜索。毫无头绪。有人可以给我牵头/抢先吗?非常感谢。 问题答案: 我很惊讶没有人提到新的FetchAPI,在撰写本文时,除IE11之外,所有浏览器都支持该API。它简化了您在其他许多示例中看​​到的XMLHttpRequest语法。 API包含更多内容,但从方法开始。它有两个参数

  • 问题内容: 收到以下错误: TypeError:Object.values不是函数。 从这个对计算器的问题-我看是不是在所有的浏览器都支持。 但是我在服务器端的Node.js中使用该功能-如何在Node.js中使用它看起来如此直观? 问题答案: 是ES2017中的新功能。这是非常出血的边缘。从7.0版开始,Node.js完全支持它。 6.8.1支持它,但是它被认为是不稳定的并且被锁定在标志后面。

  • 问题内容: 我需要在Node.js中有一个完整的基本示例,该示例从(客户端)html按钮onclick事件调用服务器端函数,就像在ASP.NET和C#中一样。 我是Node.js的新手,并使用Express框架。 有什么帮助吗? 改进的问题: //服务器端 : //客户端 问题答案: 这是一个使用Express和HTML表单的示例。 上面的代码将启动Express的实例,该实例是Node的Web应

  • 问题内容: 我有一个宠物项目,它是一个在线游戏,整个游戏引擎都是用C#编写的,我想知道是否仍然可以从使用Node.JS构建的解决方案中调用此现有程序集(.dll)的功能。 ,Socket.IO,Express等? 游戏引擎本身非常完整。经过测试且功能强大。我希望有一些简洁的方法来公开其功能,而又不会增加太多开销。 更新 : 稍微回答一下我自己的问题。.我已经结束了构建自己的Web套接字服务器(基于

  • 问题内容: 知道如何防止对node.js应用程序进行XSS攻击吗?在那里处理删除href,onclick属性等中的javascript的任何库。从发布的数据? 我不想为所有这些写正则表达式:) 有什么建议? 问题答案: 建议从GoogleCaja借用JS中基于白名单的JS中的HTML清理器,据我快速浏览可知,该实现器不依赖HTML来实现HTML SAX解析器。浏览器的DOM。 更新: 另外,请记住

  • 问题内容: 我需要在jquery中调用java类方法,该怎么做? 欲了解更多信息,例如: 我想从jQuery 调用此方法。 问题答案: 1种方法:- 在jquery api中,要调用任何后端系统,就您的Java而言,您需要执行ajax调用来调用Java控制器或服务。 jQuery ajax发布调用(在此处调用Java控制器) 第二种方法: 如果您需要Java类来参与jsp的构建,则可以使用自定义标