Как получить данные из API в Node.js к виду в React.js

#node.js #reactjs #sql-server #api #rest

Вопрос:

Я попытался получить данные из своей среды SQL Server Management Studio. Я уже сделал запрос внутри API, поэтому, когда я получу доступ к этим ссылкам с помощью postman, он получит данные, равные запросу внутри этих ссылок. Но когда я хочу показать данные на странице, они не выводятся, даже если они уже выводятся в журнале консоли. Ошибка всегда меняется, но так и не решена.

Запрос операций с базой данных

 const config = require('./dbConfig'); const sql = require('mssql');  
 async function getRoles() {  try {  let pool = await sql.connect(/My Configuration Database/);  let products = await pool.request().query("SELECT [id],[division] FROM [FMLX_IME].[dbo].[ime.tbl_roles]");  return products.recordsets;  }  catch(error) {  console.log(error);  }  }   

Вот как я вставляю функцию в ссылки API

 const express = require('express'); const cors = require('cors'); const app = express(); const bodyParser = require('bodyParser'); const Db = require('./dbOperations'); const router = express.Router();  const PORT = process.env.PORT || 3001;  app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cors()); app.use('/api', router);  
 router.use((request, response, next) =gt; {  console.log("============ MIDDLEWARE ============");  next(); });  router.route('/get-roles').get((request, response) =gt; {  Db.getRoles().then(result =gt; {  response.json(result);  console.log(result);  }); });  

Вот как я пытался получить данные, уже перепробовал так много способов, но ничего не работает. Только в том случае, если данные получены успешно, если используется API, который уже подключен или запущен, а не с моего локального хоста. (Уже пробовал использовать axios тоже)

 Class ManualTest extends React.Component {  constructor(props) {  super(props);  this.state = {  roles: [],  isLoaded: false  }  }   componentDidMount() {  fetch('http://localhost:3001/api/get-roles')  .then(result =gt; console.log(result.json()))  .then(res =gt; res.json())  .then(json =gt; {  this.setState({  roles: json,  isLoaded: true  })  }).catch((err) =gt; {  console.log(err);   });  }   render() {   const { isLoaded, roles } = this.state;   if(!isLoaded)  return lt;divgt;Loading...lt;/divgt;   return (  lt;div className="App"gt;  lt;ulgt;  {roles.map(role =gt; (  lt;li key={role.id}gt;  ID: {role.id} || ROLE: {role.role}  lt;/ligt;  ))}  lt;/ulgt;  lt;/divgt;  );  } }  export default ManualTest  

Комментарии:

1. данные никогда не отображаются, даже если их извлекает журнал консоли. Я уже пробовал использовать другой бесплатный API от Google для целей тестирования, и он работает. Но с использованием моего собственного API localhost этого никогда не случалось.

2. Пожалуйста, помогите, это мой проект стажировки, и я добился незначительного прогресса в этом проекте, потому что я не могу работать с другими материалами, если это все еще не работает.

3. поместите журнал консоли после fetch('http://localhost:3001/api/get-roles') того, как увидите, поступают ли данные, вы не регистрируетесь там

4. да, данные поступают и отображаются в виде json в журнале консоли. Я добавляю .then(result =gt; console.log(result.json())) после получения @AshishKamble

5. но все равно он не появится, если я вставлю его в элемент страницы просмотра внутри lt;divgt;lt;/divgt; @AshishKamble