【问题标题】:Get data from a method on the server side using jquery and NodeJS使用 jquery 和 NodeJS 从服务器端的方法获取数据
【发布时间】:2020-11-15 19:08:06
【问题描述】:

我有一个 NodeJS Express 服务器,它包含这个方法

function GetYears(User) {
  let Years = []
  let user = GetUserData(User);
  user.History.forEach(i => {
    Years.push(i.Year);
  });
  return Years;
}

如何使用 jquery 运行该方法并返回“Years”数组,以便在 HTML 页面上像这样使用。

<script>
    $(()=>{
        let x = ['Name','Surname','Age']
        x.forEach(i=>{
            $('#Headers').append(`<th>${i}</th>`);
        })
    });
</script>

其中 'x' 将是从服务器返回的数组。

【问题讨论】:

  • 我没有得到你想要的结果。所以 NodeJS 将返回 Years(我想是通过 API 调用?),在浏览器上会发生什么?
  • 我正在使用 express 运行 Web 服务器,并且在浏览器上它会在页面加载时用数组数据填充表格行 #,数据应该从NodeJS 服务器。
  • 那么,我想jQuery会调用一个API端点?或者您希望 Express 提供其中印有 JS 的 HTML 页面,并准备好由浏览器执行,并在发送到浏览器的 HTML 页面中已打印 Years 数组的数据?

标签: jquery node.js express


【解决方案1】:

通过 API? :-)

在后端(Node.js 和 Express)上,您将有一个 Route,它发送的返回值是 GetYears

在前端 (Jquery) 上,您将 $.ajax 该路由的 url 并处理结果。

【讨论】:

    【解决方案2】:

    好的,所以我为其他尝试做同样事情的人想通了,似乎有很多不同的方法,但这是我的尝试,在我的 HTML 页面中我使用了这个:

    $(()=>{
            $.post( "/GetYears",{User:'Jake'}, function( data ) {
                    data.data.forEach(i => {
                    $("#Year").append(`<option value="${i}">${i}</option>`);
                });
            });
        });
    

    在我的服务器上我这样做了:

    const express = require('express');
    const app = express();
    
    app.post('/GetYears',(req,res)=>{
      let User = req.body.User;
      res.json({data:Handle.GetYears(User)});
    })
    
    app.listen(8000);
    

    我将表格更改为下拉选择,从服务器获取年份数据,然后用它填充下拉列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2018-02-09
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      相关资源
      最近更新 更多