質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

1回答

2565閲覧

Node.js+ExpressでJSONファイルをコンソールに表示させたい

tsu2626

総合スコア12

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2018/10/21 02:39

編集2022/01/12 10:55

Node.js+ExpressでJSONファイルをコンソールに表示させたい

最終的にはJSONファイルのデータをWebページに表示をさせたいのですが、まずはコンソールに表示させることを目指しています。

発生している問題・エラーメッセージ

node app.js

上記のコマンドをコンソールで叩くと

connect ECONNREFUSED 127.0.0.1:443

のようなエラーが発生します。

該当のソースコード

js

1'use strict'; 2 3var createError = require('http-errors'); 4var express = require('express'); 5var path = require('path'); 6var cookieParser = require('cookie-parser'); 7var logger = require('morgan'); 8 9var indexRouter = require('./routes/index'); 10var usersRouter = require('./routes/users'); 11var topRouter = require('./routes/top'); 12var request = require('request'); 13 14let app = express(); 15 16// view engine setup 17app.set('views', path.join(__dirname, 'views')); 18app.set('view engine', 'pug'); 19 20app.use(logger('dev')); 21app.use(express.json()); 22app.use(express.urlencoded({ extended: false })); 23app.use(cookieParser()); 24app.use(express.static(path.join(__dirname, 'public'))); 25 26app.use('/', indexRouter); 27app.use('/users', usersRouter); 28app.use('/top', topRouter); 29 30// catch 404 and forward to error handler 31app.use(function(req, res, next) { 32 next(createError(404)); 33}); 34 35// error handler 36app.use(function(err, req, res, next) { 37 // set locals, only providing error in development 38 res.locals.message = err.message; 39 res.locals.error = req.app.get('env') === 'development' ? err : {}; 40 41 // render the error page 42 res.status(err.status || 500); 43 res.render('error'); 44}); 45 46let https = require('https'); 47var fs = require('fs'); 48var json = JSON.parse(fs.readFileSync('./api.json', 'utf8')); 49 50https.get(json, (res) => { 51 let body = ''; 52 res.setEncoding('utf8'); 53 54 res.on('data', (chunk) => { 55 body += chunk; 56 }); 57 58 res.on('end', (res) => { 59 JSON.parse(body || "null") 60 console.log(res); 61 }); 62}).on('error', (e) => { 63 console.log(e.message); 64}); 65 66module.exports = app; 67

構造としては以下の通りになります。
api.jsonとapp.jsは同じディレクトリにいます。

. ├── api.json ├── app.js ├── bin ├── node_modules ├── package-lock.json ├── package.json ├── public ├── routes └── views

ぐぐってみるとproxyの問題?のような気もしますが…

解決方法をご教示願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

今回の問題の一番大きな原因は「サーバ立ち上がってないじゃん」ですね。
app.listen(3000);とポート番号を指定してようやくexpressのサーバは動作し始めます。

次にハマると思うのが、HTTPS通信を行うサーバを建てるには手続きが色々とあってややこしいという事です。
app.listenでWebサーバを立ち上げても、それはHTTP通信のサーバなのでhttps://では通信出来ません。
まぁ、上でrequestモジュール読み込んでるんだから、httpsモジュールじゃなくてrequestモジュール使えということです。


【おまけ】 もし本番環境でHTTPSのWebサーバを構築する場合

NginX等で立ち上げた代表的存在のWebサーバアプリでHTTPSへの対応を行い、
特定のURLに来たらNginXがNode.jsのサーバに接続を中継するリバースプロキシというテクニックを使ってやり取りする仕組みを構築する事が多いです。

投稿2018/10/23 04:19

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問