Как отправить JSON с серверной стороны (nodejs) на клиентскую сторону с помощью Ajax? - PullRequest
0 голосов
/ 01 ноября 2019

Я создал сервер Node.js / Express для вызова API GET. API возвращает данные JSON. Как отправить JSON, который я получил, в свой локальный javascript (клиент-сервер)? Я хотел бы получить этот JSON, отправить моему локальному клиенту (с помощью ajax-вызова, если это вариант), пройти через него и добавить его в мой DOM!

app.js

var express = require('express');
var router = express.Router();
var request = require("request");

let name, value, bodyData;

var options = { method: 'GET',
  url: 'https://api.example.com/data1',
  qs: 
   { 
     valueType: 'MAXIMUM'
   },
  headers: 
   { 
     authorization: 'ABC123456',
     accept: 'application/json; charset=utf-8' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  bodyData = body;

});


router.get('/', function(req, res, next) {
  res.render('home', {data: bodyData});
});

module.exports = router;

app.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Items</title>
</head>
<body>
  <div id="itemsList">
    <h2>List of available items:  </h2>
  </div>
</body>
</html>

scripts.js

$(document).ready(function(){
   $.ajax({
       type: "GET",
       url: "http://localhost:3000/",
       contentType: "application/json"
     }).done(function(data){
          for(var i =1; i<= 10; i++){
          $('#itemsList').append('<div id="r'+ i +'"></div>')
          }
     })
 });

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Если ваш data является массивом, вы должны написать цикл следующим образом:

$(document).ready(function(){
   $.ajax({
       type: "GET",
       url: "http://localhost:3000/",
       contentType: "application/json"
     }).done(function(data){
          for(var i =1; i<data.length; i++){
          $('#itemsList').append('<div id="r'+ data[i] +'">'+data[i]+'</div>')
          }
     })
 });
0 голосов
/ 01 ноября 2019
var express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));


app.get('/', (request, response)=>{
  response.json({
    message: 'Hello world!',
    arrayText: ['message1', 'message2']
  }):
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...