如何在 Node.js 中从客户端调用服务器端函数(例如.html单击按钮)
How to call a server side function from client side (e.g. html button onclick) in Node.js?
我需要 Node.js 中一个完整的基本示例,从(客户端)html button onclick 事件调用服务器端函数,就像在 ASP.NET 和 C# 中一样。
我是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()
模块用于解析请求正文,因此您可以读取发布数据。然后,它将侦听路由/
上的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 模块,但您必须自己解析 HTTP 请求正文。
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);
相关文章:
- jQuery双对象构造函数-例如$($(this))
- 反向名称的JavaScript函数不能正确工作(例如学习JavaScript-O'Reilly)
- 函数在例如$(document).ready()上注册时的通知
- 如何通过hover()或mouseenter函数更改选项值,例如
- 如何在javascript中创建看起来像点符号的自定义函数?例如str.getFirstIndex();
- 如何将包含猫鼬函数的方法与控制流框架(例如异步或 Step)一起使用
- 箭头函数可以合并主机函数的多个参数,例如 reduce
- 覆盖函数(例如“alert”)并调用原始函数
- 单击元素(例如一个或多个图像标签)和相同的函数应在angularjs中调用
- JavaScript - 如何注入不同的函数实现,例如 alert(与 web 和 Node 共享模块.js服务器端)
- 如何在 Node.js 中从客户端调用服务器端函数(例如.html单击按钮)
- 如何调用使用 canvas 的函数,例如:函数 play(ctx){} 在 IF 语句中
- 为什么出现错误,例如函数名称未定义
- 按名称调用函数(例如namespace.show)
- 有没有一种方法可以用程序设置断点(例如,当调用命名函数时)
- 当您从函数返回JavaScript语句时会发生什么,例如return console.log(“Hello”)
- 反正规函数的Javascript等价物?例如Excel's NORMSINV()或NORMINV()
- 如何从函数onComplete()中获取这个val(例如代码中的gLats)
- Javascript函数避免在HTML输入文本字段中出现两个小数点(例如:12.1.1)
- 为什么函数属性定义在对象本身上(例如Function.name),而方法定义在Function.prototype上?