如何在Node.js中从客户端调用服务器端函数(例如,htmlbuttononclick)?

我需要一个完整的Node.js基本例子,就像在ASP.NET和C#中一样,从(客户端)htmlbuttononclick事件调用服务器端函数。

我是Node.js的新手,并使用Express框架。

任何帮助?

改进的问题:

//服务器端 :

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')); }); 

//客户端

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

这里有一个使用Express和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); 

上面的代码将启动一个Express实例,这是一个Node的Web应用程序框架。 bodyParser()模块用于parsing请求主体,所以你可以读取发布数据。 然后它将侦听路由上的POST请求。

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

如果你提交这个表单,你可以在req.body中得到结果:

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

要运行一个函数,只需将它放在POST处理程序中,如下所示:

 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(); }); 

如果您不想使用Express,那么您可以使用本地HTTP模块,但是您必须自己parsingHTTP请求主体。

 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); 

我想这是你所需要的

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