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

我如何从提取调用 EXpress NoseJs Javascript 中解析此结果

我如何从提取调用 EXpress NoseJs Javascript 中解析此结果

慕容708150 2022-12-02 16:25:15
这是我的脚本代码,它在 index.html 文件中,我知道放在那里是错误的,但首先我会尝试让它工作,然后我会移动它。readOperaciones();        async function readOperaciones(){            try{                const listaOr = document.getElementById('listaOrdenada');                const result = await fetch("http://localhost:8080/operaciones", {method: "GET"})                const operaciones = await JSON.parse(result)                //operaciones.forEach(t=>{                    for (var i = 0; i < operaciones.length; i++) {                    var row = operaciones[i];                    console.log(row.codeemp);}                    /*tt = JSON.stringify(t);                    const li = document.createElement("li");                    li.textContent = tt.text;*/                    /*t.forEach(cell=>{                        const li = document.createElement("li")                        li.textContent = cell.text;                        li.id = cell.id;                    })*/                //})            }            catch(e){                console.log("Error al leer las operaciones descriptas")            }        }这是与快递的连接const {Client} = require('pg');const express = require ("express")const app = express();app.use(express.json())const client = new Client({  user: "postgres",  password: "1234",  host: "localhost",  port: 5432,  database: "webaduana",})app.get("/", (req, res) => res.sendFile(`${__dirname}/index.html`))app.get("/operaciones", async (req, res) => {    const rows = await readAll();    res.setHeader("content-type", "application/json")    res.send(JSON.stringify(rows))})async function readAll(){    try{        const results = await client.query("select * from operaciones")        return results.rows;    }    catch(e){        console.log(e)        return [];    }}我不知道我是否需要提供更多信息,但我对所有这些代码的问题都在这里我已经尝试了很多方法,但我无法在 ol 元素中获得这些结果。它没有给我任何错误,它只是不在 HTML 页面中打印任何内容
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

你可以使用 .json() 方法:


const fetched = await fetch("/url", {

  method: 'GET',

});


const fetchedJson: object = await fetched.json();


console.log(fetchedJson)


查看完整回答
反对 回复 2022-12-02
?
慕标5832272

TA贡献1966条经验 获得超4个赞

有几种方法可以做到这一点。


使用承诺

获取响应对象本身包含一些方法,可以帮助您获得不同形式的响应,例如.json()、.text()和.status。点击此处了解详情。所以,如果你只是想将答案解析成一个 JSON 对象,你可以这样做


function doSomethingOnParsedJson(res) {

  // Do something on the response here...

}


function readOperacions() {

  fetch("http://localhost:8080/operaciones", {

    method: "GET",

  })

     .then(res => res.json())

     .then(doSomethingOnParsedJson) // Pass in a function without parentheses

     .catch(console.error);

}

如果你定义一个单独的函数来执行你想对解析的响应做的工作并将函数(不带括号)传递给它会更干净,then但你也可以继续并直接给它一个函数,如:


function readOperacions() {

  fetch("http://localhost:8080/operaciones", {

    method: "GET",

  })

     .then(res => res.json())

     .then(parsedResponse => {

       // do something...

     })

     .catch(console.error);

}

使用异步/等待

您还可以使用异步/等待功能来实现这一点。


function doSomethingOnParsedJson(res) {

  // Do something on the response here...

}


async function readOperacions() {

  try {

    // Get the response from the server.

    const res = await fetch("http://localhost:8080/operaciones", {

      method: "GET",

    });

  

    // Parse it into a JSON object.

    const parsedJson = res.json();


    // Do something on it.

    doSomethingOnParsedJson(parsedJson);

  } catch (error) {

    // Show an error if something unexpected happened.

  }

}

边注

在 Express 中有一种更简洁的方法来发送 JSON 响应。您可以.json在 Express 响应对象上使用该方法。


app.get("/operaciones", async (req, res) => {

  const rows = await readAll();


  /* Don't do this!

  res.setHeader("content-type", "application/json")

  res.send(JSON.stringify(rows))

  */


  /* Do this instead ;-) */

  res.json(rows);

})

瞧!就这么简单。


查看完整回答
反对 回复 2022-12-02
?
温温酱

TA贡献1752条经验 获得超4个赞

将 .then 添加到获取链并打印结果:


fetch('http://example.com/movies.json')

  .then(response => {

    console.log('response: ' + JSON.stringify(response));

  })

  ...

  ...

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch


查看完整回答
反对 回复 2022-12-02
  • 3 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

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