What's the most efficient way to call a Node.js backend function with JavaScript

巧了我就是萌 提交于 2019-12-12 02:44:30

问题


I'm an html5 developer with mainly JavaScript experience. I'm starting to learn the backend using Node.js. I don't have a particular example of this question/requirements. I'd like to call a back end function with JavaScript, but I'm not sure how. I already researched events and such for Node.js, but I'm still not sure how to use them.


回答1:


Communicating with node.js is like communicating with any other server side technology.. you would need to set up some form of api. What kind you need would depend on your use case. This would be a different topic but a hint would be if you need persistent connections go with web sockets and if you just need occasional connections go with rest. Here is an example of calling a node function using a rest api and express.

var express = require('express'); 
var app = express();

app.post('/api/foo', foo);

function foo(req, res){
 res.send('hello world');
};

app.listen(3000);

From the frontend you can post to this REST endpoint like so.

$.post("/api/foo", function(data) {
  console.log( "Foo function result:", data );
});



回答2:


If you're just starting with node-js, don't worry about Websockets just yet.

You're going to want to create a REST API (most likely) depending on what you're trying to accomplish. You can put that REST API behind some kind of authentication if desired.

A REST API is going to have endpoints for creating/deleting/updating and getting (finding) a document, like a given user.

My recommendation is to work backwards from something that's already working. Clone this app locally and check out the controllers to see examples of how this application interacts with creating users.

https://github.com/sahat/hackathon-starter

Once you create a controller that returns data when a client hits an endpoint (like http://localhost:3000/user/create ) , you'll want to create some HTML that will interact with endpoint through a form HTML element. Or you can interact with that endpoint with Javascript using a library like jQuery.

Let me know if that makes sense to you. Definitely a good starting point is to clone that app and work backwards from there.



来源:https://stackoverflow.com/questions/34475731/whats-the-most-efficient-way-to-call-a-node-js-backend-function-with-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!