この度、ブロックチェーンに興味を持ち勉強してみたいと思いました。
そこでネット上でサンプルを見つけ動かしてみようと思ったのですが、
うまくいかず・・。
アレンジしたもののうまく動きません。
動いてる場所
(1) nodeでhtmlを表示できる
(2) html上でボタンを押すとjsが起動する
(3) nodeとの通信は動いている以下のソースコードでの
console.log("LOAD2.");は動いている
動かない部分
上記の(3)は満たせるもののJsonファイルをhtmlに送信する事ができない。
getNewAddress.html
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>ビットコインアドレスを生成する</title> 6 7</head> 8<body> 9 10 <main> 11 <p id="privateKey">秘密鍵</p> 12 <p id="publicKey">公開鍵</p> 13 <p id="bitcoinAddress">ビットコインアドレス</p> 14 <button type="button" id="createAddressButton">アドレスを生成</button> 15 </main> 16 17 18 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> 19 <script> 20 $(document).ready(function() { 21 $('#createAddressButton').click(function() { 22 $.ajax({ 23 type: 'post', 24 url: 'http://localhost:8000/getNewAddress/', 25 dataType: 'json' 26 }).done(function(res) { 27 $('#privateKey').text('秘密鍵: ' + res.privateKey); 28 $('#publicKey').text('公開鍵: ' + res.publicKey); 29 $('#bitcoinAddress').text('ビットコインアドレス: ' + res.bitcoinAddress); 30 }).fail(function(res) { 31 alert('Error'); 32 }); 33 }); 34 }); 35 </script> 36 37 38 39 40 41</body> 42</html> 43
getNewAddress.js
1var http = require("http"); 2var port = process.env.PORT || 8000; 3var bitcore = require('bitcore-lib'); 4var router = require('router'); 5var finalhandler = require('finalhandler'); 6var bodyParser = require('body-parser'); 7 8 9var appRouter = router(); 10appRouter.get('/getNewAddress', function(req, res) { 11 12 console.log("LOAD2."); 13 // 秘密鍵の生成 14 var privateKey = new bitcore.PrivateKey(NETWORK_TYPE); 15 // 秘密鍵から公開鍵を生成 16 var publicKey = privateKey.toPublicKey(); 17 // 公開鍵からビットコインアドレスを生成 18 var bitcoinAddress = publicKey.toAddress(NETWORK_TYPE); 19 20 // レスポンス用のjsonを生成 21 var json = JSON.stringify({ 22 "privateKey": privateKey.toString(), 23 "publicKey": publicKey.toString(), 24 "bitcoinAddress": bitcoinAddress.toString() 25 }); 26 27 res.send(json); 28}); 29 30// ファイルモジュールを読み込む 31var fs = require('fs'); 32 33var server = http.createServer(function onRequest(req, res) { 34 35fs.readFile('./getNewAddress.html', 'utf-8' , doReard ); 36 37function doReard(err, data) { 38res.setHeader('Access-Control-Allow-Origin', '*'); 39res.setHeader('Access-Control-Request-Method', '*'); 40res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested- 41 42With, Content-Type, Accept"); 43res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET'); 44 45res.writeHead(200, {'Content-Type': 'text/html'}); 46 47res.write(data); 48res.end(); 49appRouter(req, res, finalhandler(req, res)); 50 51} 52 53}).listen(port); 54 55console.log("The server has been started."); 56
以上がソースとなります。
また、res.send(json);の部分に関しては
サンプルからコードを変更しており、
res.setHeader('Content-Type', 'Content-type: application/json');
res.end(json);
が元々のコードとなっております。
またこれらのプログラムは最終的に
heroku上で動作させようと考えています。
heroku上では簡単なプログラム等は動かす事が
できているのでhtmlとnodeにおける
このレスポンス関連の不具合を
どうにかしたいと考えているため
どなたかご教授お願い申し上げます。
あなたの回答
tips
プレビュー