Comment appeler une fonction côté serveur côté client (p. Ex. Bouton html onclick) dans Node.js?

J'ai besoin d'un exemple de base complet dans Node.js d'appeler une fonction côté serveur du côté client (côté client) sur l'événement onclick, tout comme dans ASP.NET et C #.

Je suis nouveau sur Node.js et j'utilise le cadre Express.

De l'aide?

QUESTION AMÉLIORÉE:

//du côté serveur :

var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('views',__dirname + '/views'); app.set('port', process.env.PORT || 3000); app.engine('html', require('ejs').renderFile); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, 'public'))); app.set('view engine', 'html'); app.use(app.router); app.get("/",function(req,res) { res.render('home.html'); }); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } app.get('/', routes.index); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

//Côté client

  <input type="button" onclick="" /> <--just want to call the serverside function from here--> 

Voici un exemple utilisant Express et un formulaire HTML.

 var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); app.use(express.bodyParser()); app.post('/', function(req, res) { console.log(req.body); res.send(200); }); server.listen(process.env.PORT, process.env.IP); 

Le code ci-dessus commencera une instance d'Express, qui est un cadre d'application Web pour Node. Le module bodyParser() est utilisé pour analyser le corps de la requête, de sorte que vous pouvez lire les données de publication. Il écoutera ensuite les demandes POST sur l'itinéraire / .

 <form method="post" action="/"> <input type="test" name="field1"> <input type="test" name="field2"> <input type="submit"> </form> 

Et si vous soumettez ce formulaire, en req.body pour l'itinéraire / , vous obtiendrez le résultat:

 { field1: 'form contents', field2: 'second field contents' } 

Pour exécuter une fonction, mettez-la dans le gestionnaire POST comme ceci:

 var foo = function() { // do something }; app.post('/', function(req, res) { console.log(req.body); res.send(200); // sending a response does not pause the function foo(); }); 

Si vous ne souhaitez pas utiliser Express, vous pouvez utiliser le module HTTP natif, mais vous devriez analyser le corps de requêtes HTTP vous-même.

 var http = require('http'); http.createServer(function(request, response) { if (request.method === 'POST') { var data = ''; request.on('data', function(chunk) { data += chunk; }); request.on('end', function() { // parse the data foo(); }); } }).listen(80); 

Je pense que c'est ce dont vous avez besoin

 input type="button" value="submit" onclick="submit form(document.getElementById('form id'),'process.php','createtask');