通过 NODE JS & express & jquery 向任何 API 提交请求后,在 HTML 中打印 var 值

Posted

技术标签:

【中文标题】通过 NODE JS & express & jquery 向任何 API 提交请求后,在 HTML 中打印 var 值【英文标题】:Print var value in HTML after submitting a request to any API via NODE JS & express & jquery 【发布时间】:2021-09-15 14:55:53 【问题描述】:

需要帮助才能完成这个简单的任务:html AJAX 链接 > 调用节点 JS API 以获取值 > 等待 > 然后 > 返回值并打印到 HTML、JS 或 php

点击获取我的价值链接后,下面的示例以 HTML 格式给出:"myvalue":"testundefined"。 服务器端控制台没问题。 API 调用可以将值返回给 Node 服务器。

由于我是 Node 和异步的新手,我将不胜感激任何帮助来解决这个问题。我阅读了许多教程和示例以达到这一点,现在我被卡住了。提前谢谢!

var express = require('express');
var app = express();

app.use(express.json());
app.use(express.urlencoded( extended: true ));

const API = require("API");
const KEY = new API( apiKey: "xxxxxxxxxxxxxxxx" );

function getmyvar()
var result = callAPI.integer();
return result; // will return a number


const myvaluevar = new Promise((resolve,reject)=>
    setTimeout(()=>
        resolve(getmyvar());
    ,1000);
);
    
async function getmyvaluevar() 
  const results = await myvaluevar; 
  console.log(results);
  return results;



app.get('/', function (req, res) 
     res.sendFile('/index.html',  root: __dirname );
);

app.get('/getmyvaluevar', function(req, res) 
   
   var myvalue = getmyvaluevar().then(
         
          res.send(
    myvalue: 'test'+ myvalue 
  )
         )
);

var server = app.listen(3000, function () 
    console.log('Node server is running..');
);
<!DOCTYPE html>
<head>
    <meta charset="utf-8" />
    <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script>$('#get-data').on('click', function() 
  $('#myvalue').html(JSON.stringify(json));
);</script>
</head>
<body>

<a href="/getmyvaluevar" id="get-data">Get My Value</a>
<div id="myvalue"></div>

</body>
</html>

【问题讨论】:

【参考方案1】:

如果我很了解你的问题,你应该试试这个:

注意:不要同时使用 .then()async await

app.get('/getmyvaluevar', async function(req, res) 
   
   var myvalue = await getmyvaluevar()      
   res.send( myvalue: 'test'+ myvalue )
);

【讨论】:

谢谢。脚本现在无需在 myvaluevar 后使用 () 即可运行。节点返回错误“它不是函数”。 我更新了我的答案,你不需要() 只需使用async await 就像上面的答案@JCDweb 非常感谢您的帮助。非常感谢。

以上是关于通过 NODE JS & express & jquery 向任何 API 提交请求后,在 HTML 中打印 var 值的主要内容,如果未能解决你的问题,请参考以下文章

connect & express简介

sh Node.js && Express && Angular

从 POST 访问中隐藏 Node.js&Express 中的错误消息

Rest API Node Js & Express,创建链接(href)到自己

Express Node.js 不起作用

让 socket.io、express 和 node-http2 通过 HTTP/2 进行通信