[英]How to call node.js server side method from javascript?
我是 node.js 的新手,但我對 socketstream web 框架有所了解,通過使用它,我可以輕松地從 JavaScript 調用服務器端 node.js 方法。 如果不使用該框架,我不知道如何做到這一點。 如何從 JavaScript 調用 node.js 方法?
以下代碼使用 socketstream 調用服務器端方法。 所以我想在不使用這個框架的情況下調用相同的服務器端方法。
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);
並使用 JQuery 觸發AJAX
請求
$.ajax({
type: 'get',
url: '/somepath',
success: function (data) {
// use data
}
})
不是精確的套接字,而是一個簡單的解決方案:
我可以建議嘗試api-mount嗎? 它基本上允許調用 API 作為簡單的函數,而無需考慮 AJAX 請求、獲取、表達等。基本上在服務器中,您可以:
const ApiMount = apiMountFactory()
ApiMount.exposeApi(api)
“api”基本上是您願意從 Web 應用程序調用的方法/函數的對象。
然后在 Web 應用程序上執行以下操作:
const api = mountApi({baseUrl: 'http://your-server.com:3000'})
完成后,您可以像這樣簡單地調用您的 API:
const result = await api.yourApiMethod()
試試看。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.