Showing
5 changed files
with
80 additions
and
5 deletions
config/key.js
0 → 100644
config/prod.js
0 → 100644
1 | const fetch = (...args) => import('node-fetch').then(({ default: fetch }) => fetch(...args)); | 1 | const fetch = (...args) => import('node-fetch').then(({ default: fetch }) => fetch(...args)); |
2 | -const url = 'https://api.upbit.com/v1/market/all'; | 2 | +const url1 = 'https://api.upbit.com/v1/market/all'; |
3 | 3 | ||
4 | const options = { method: 'GET', headers: { Accept: 'application/json' } }; | 4 | const options = { method: 'GET', headers: { Accept: 'application/json' } }; |
5 | const express=require('express'); | 5 | const express=require('express'); |
6 | const app=express(); | 6 | const app=express(); |
7 | +const {Coin}=require("./models/Coin"); | ||
8 | + | ||
9 | + | ||
10 | +const mongoose=require('mongoose'); | ||
11 | +const config=require('./config/key'); | ||
12 | +const connect = mongoose.connect(config.mongoURI,{ | ||
13 | + useNewUrlParser: true, useUnifiedTopology: true | ||
14 | + }) | ||
15 | + .then(()=>console.log('디비연결 성공')) | ||
16 | + .catch((err)=>console.log(err)); | ||
17 | + | ||
7 | 18 | ||
8 | async function get_marketName() { | 19 | async function get_marketName() { |
9 | var data=new Array(); | 20 | var data=new Array(); |
10 | //전체 암호화폐 리스트 불러오기 | 21 | //전체 암호화폐 리스트 불러오기 |
11 | - let response= await fetch(url, options) | 22 | + let response= await fetch(url1, options) |
12 | .then(res => res.json()) | 23 | .then(res => res.json()) |
13 | .then(json => { | 24 | .then(json => { |
14 | for(i in json){ | 25 | for(i in json){ |
... | @@ -19,9 +30,9 @@ async function get_marketName() { | ... | @@ -19,9 +30,9 @@ async function get_marketName() { |
19 | } | 30 | } |
20 | async function get_marketInfo(name_list){ | 31 | async function get_marketInfo(name_list){ |
21 | //각 암호화폐 정보 조회 | 32 | //각 암호화폐 정보 조회 |
22 | - const url=`https://api.upbit.com/v1/ticker/?markets=${name_list}`; | 33 | + const url2=`https://api.upbit.com/v1/ticker/?markets=${name_list}`; |
23 | var arr=new Array(); | 34 | var arr=new Array(); |
24 | - let response2=await fetch(url,options) | 35 | + let response2=await fetch(url2,options) |
25 | .then(res=>res.json()) | 36 | .then(res=>res.json()) |
26 | .then(json=>{ | 37 | .then(json=>{ |
27 | for(i in json){ | 38 | for(i in json){ |
... | @@ -30,12 +41,39 @@ async function get_marketInfo(name_list){ | ... | @@ -30,12 +41,39 @@ async function get_marketInfo(name_list){ |
30 | } | 41 | } |
31 | } | 42 | } |
32 | }) | 43 | }) |
44 | + return arr | ||
45 | +} | ||
46 | +async function sort_data(arr){ | ||
47 | + arr.sort((a,b)=>{ | ||
48 | + return b[1]-a[1]; | ||
49 | + }) | ||
33 | return arr; | 50 | return arr; |
34 | } | 51 | } |
52 | +async function save_coin(arr){ | ||
53 | + for(var i=0;i<10;i++){ | ||
54 | + if(arr[i]){ | ||
55 | + const coin=new Coin({ | ||
56 | + tid:i+1, | ||
57 | + name:arr[i][0], | ||
58 | + acc_trade_price_24h:arr[i][1], | ||
59 | + current_price:arr[i][2] | ||
60 | + }); | ||
61 | + await coin.save((err)=>{ | ||
62 | + if(err){ | ||
63 | + console.log(err) | ||
64 | + } | ||
65 | + }) | ||
66 | + } | ||
67 | + } | ||
68 | + return true; | ||
69 | +} | ||
35 | app.get('/get_market',async (req,res)=>{ | 70 | app.get('/get_market',async (req,res)=>{ |
36 | var name_list=(await get_marketName()); | 71 | var name_list=(await get_marketName()); |
37 | var market_info=(await get_marketInfo(name_list)); | 72 | var market_info=(await get_marketInfo(name_list)); |
38 | - res.json(market_info); | 73 | + var sort_info=(await sort_data(market_info)); |
74 | + console.log(sort_info); | ||
75 | + res.json(await save_coin(sort_info)); | ||
76 | + | ||
39 | }) | 77 | }) |
40 | app.listen(5000,()=>{ | 78 | app.listen(5000,()=>{ |
41 | console.log('server') | 79 | console.log('server') | ... | ... |
models/Coin.js
0 → 100644
1 | +const mongoose=require('mongoose'); | ||
2 | + | ||
3 | +const coinSchema=mongoose.Schema({ | ||
4 | + tid:{ | ||
5 | + type:Number, | ||
6 | + }, | ||
7 | + name:{ | ||
8 | + type:String, | ||
9 | + required:true | ||
10 | + }, | ||
11 | + acc_trade_price_24h:{ | ||
12 | + type:Number, | ||
13 | + required:true | ||
14 | + }, | ||
15 | + current_price:{ | ||
16 | + type:Number, | ||
17 | + required:true | ||
18 | + } | ||
19 | +}) | ||
20 | + | ||
21 | +const Coin=mongoose.model("Coin",coinSchema); | ||
22 | +module.exports={Coin}; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment