为了账号安全,请及时绑定邮箱和手机立即绑定

如何将函数从客户端传递到服务器(nodejs)

如何将函数从客户端传递到服务器(nodejs)

慕的地6264312 2021-12-23 14:36:05
我有这个代码:let http = require('http');let fs = require('fs');let handleRequest = (request, response) => {    response.writeHead(200, {        'Content-Type': 'text/html'    });    fs.readFile('./index.html', null, function (error, data) {        if (error) {            response.writeHead(404);            respone.write('Whoops! File not found!');        } else {            response.write(data);        }        response.end();    });};http.createServer(handleRequest).listen(8000);基本上,此代码在 Node 上创建本地服务器并打开文件:'index.html'。现在,我<button>在我的 'index.html' 上创建一个,当被点击 (onclick) 调用一个名为 'hello' 的函数时:function hello() {   console.log('hello world);}因此,当单击按钮时,浏览器控制台中会显示“hello world”,但我希望 nodejs 控制台中显示“hello world”,而不是浏览器。我怎样才能实现它?
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您可以使用 nodeJS 和expressJS来实现它。要安装快速运行npm i express.


试试这个


let http = require('http');

let fs = require('fs');

let express = require('express');

let app = express();

app.get('/', function (req, res) {

    res.sendfile('./index.html');

})


app.get('/getData', function (req, res) {

    console.log("getData called.");

    res.send("res from getData function");

})


var server = app.listen(8000, function () {

    var host = server.address().address

    var port = server.address().port

    console.log("Example app listening at http://%s:%s", host, port)

})

<html>

  <head>

<script>

  function httpGet(theUrl) {

    var xmlhttp = new XMLHttpRequest();

    var url = "http://localhost:8000/getData";

    xmlhttp.onreadystatechange = function (res) {

      if (this.readyState == 4 && this.status == 200) {

        document.write(this.responseText);

      }

    };

    xmlhttp.open("GET", url, true);

    xmlhttp.send();

  }

</script>

</head>

<body>

  <button onclick="httpGet()">httpGet</button>

</body>


</html>


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信