gpt4 book ai didi

javascript - 如何在 Node.js 中从客户端(例如 html 按钮 onclick)调用服务器端函数?

转载 作者:IT老高 更新时间:2023-10-28 22:03:43 25 4
gpt4 key购买 nike

我需要一个在 Node.js 中从(客户端)html 按钮 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.js 的 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);

关于javascript - 如何在 Node.js 中从客户端(例如 html 按钮 onclick)调用服务器端函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com