Fetch API

장진영·2024년 5월 17일
# 남이 만든 api 가져오는법

import requests

# r = requests.get('https://api.signal.bz/news/realtime')

# d = r.json()

# # print(r.json())
# # print(type(d))

# top10 = d['top10']

# for item in top10:
#     print(item['rank'], item['keyword'])

================================================================

async function logMovies() {
  const response = await fetch("http://example.com/movies.json");
  const movies = await response.json();
  console.log(movies);
}

=================================================================

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fetch TEST</title>
</head>

<body>
    <button onclick="logJSONData()">fetch 호출</button>

    <ol id="rank"></ol>

    <script>
        async function logJSONData() {
            const response = await fetch("https://api.signal.bz/news/realtime");
            const jsonData = await response.json();
            console.log(jsonData);

            console.log(jsonData['top10']);

            var top10 = jsonData['top10'];

            for (var i = 0; i < top10.length; i++){
                console.log(top10[i]['keyword']);
            }
        }

    </script>
</body>

</html>

===================================================================

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fetch TEST</title>
</head>

<body>
    <button onclick="logJSONData()">fetch 호출</button>

    <ol id="rank"></ol>

    <script>
        async function logJSONData() {
            const response = await fetch("https://api.signal.bz/news/realtime");
            const jsonData = await response.json();
            console.log(jsonData);

            console.log(jsonData['top10']);

            var top10 = jsonData['top10'];

            var html = "";

            for (var i = 0; i < top10.length; i++){
                console.log(top10[i]['keyword']);
                html += `<li>${top10[i]['keyword']}</li>`
            }

            document.getElementById('rank').innerHTML = html;
        }

    </script>
</body>

</html>

==========================================================================
node js

.mjs 파일명

import { isUtf8 } from 'node:buffer';
import { createServer } from 'node:http';

const server = createServer((req, res) => {
    res.writeHead(200, { 'Content-Type' : 'text/html;charset=utf8'});

    if (req.url == '/') {
        res.end('<h1>메인 페이지</h1>\n');
    } else if (req.url == '/news'){
        res.end('<h1>뉴스 페이지</h1>\n')
    }
});

// starts a simple http server locally on port 3000
server.listen(3000, '127.0.0.1', () => {
    console.log('Listening on 127.0.0.1:3000');
});

// localhost:3000

===============================================================================
.js 파일명

const express = require('express');
const app = express();
const port = 3000;

app.listen(port, () ={
    console.log(`서버 실행중: http://localhost:{port}`);
});

app.get('/', (req, res) => {
    res.send('Hello World!');
});

.npm init -y 터미널에 입력 => package.json이 생김
npm install express 터미널에 입력하면 다운로드가 받아지고 package.json에 express 버전이 설치가 됨

const express = require('express');
const app = express();
const port = 3000;

app.listen(port, () => {
    console.log(`서버 실행중: http://localhost:${port}`);
});

app.get('/news', (req, res) => {
    res.send('뉴스를 보여줘야지!!');
});
const express = require('express');
const app = express();
const port = 3000;

app.listen(port, () => {
    console.log(`서버 실행중: http://localhost:${port}`);
});

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.get('/news', (req, res) => {
    res.send('뉴스를 보여줘야지!!');
});

npm i -g nodemon 터미널에 설치
보안상 오류가 나는데 nodemon이 내부적으로 파일을 감시하고있다가 파일을 죽였다가 다시 실행하기때문에 바이러스와 원리가 비슷함
window에는 막혀있어서 관리자 권한으로 powershell 실행 후 다음 명령어 입력
Set-ExectutionPolicy RemoteSigned

Get-ExecutionPolicy

nodemon .\server.js

ctr s 누르면 자동으로 됨

news.html 을 만들고

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>html로 만든 뉴스 페이지임</h1>
    <ul>
        <li>폴리텍 진주캠 학생들 개쩔어</li>
        <li>오늘 밥 맛있다고 알려져</li>
        <li>요즘 날씨가 좋은데 솔로들은 어쩌나</li>
    </ul>
</body>
</html>

server.js

const express = require('express');
const app = express();
const port = 3000;

app.listen(port, () => {
    console.log(`서버 실행중: http://localhost:${port}`);
});

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.get('/news', (req, res) => {
    console.log(__dirname);
    res.sendFile(__dirname + '/news.html');
});
profile
안녕하세요. 배운 것을 메모하는 velog입니다.

0개의 댓글