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

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

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

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

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

JavaScript

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

Express

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

Q&A

解決済

1回答

4308閲覧

Webアプリケーション(投稿フォーム)を作成するために、MongoDBからデータを取得したいのですが、できません

Miwa_Ichihana

総合スコア11

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

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

JavaScript

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

Express

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

0グッド

0クリップ

投稿2018/02/25 11:55

編集2018/03/06 20:18

前提・実現したいこと

Webアプリケーション(投稿フォーム)を作成するために、MongoDBからデータを取得したいのですが、できません

※使用OS:MacOS

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

ターミナルで、node app.js と入力したところ、以下のエラーメッセージが表示されました body-parser deprecated bodyParser: use individual json/urlencoded middlewares app.js:34:9 body-parser deprecated undefined extended: provide extended option node_modules/body-parser/index.js:105:29 { MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] at Pool.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/topologies/server.js:503:11) at Pool.emit (events.js:160:13) at Connection.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/pool.js:326:12) at Object.onceWrapper (events.js:255:19) at Connection.emit (events.js:160:13) at Socket.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/connection.js:245:50) at Object.onceWrapper (events.js:255:19) at Socket.emit (events.js:160:13) at emitErrorNT (internal/streams/destroy.js:64:8) at process._tickCallback (internal/process/next_tick.js:152:19) name: 'MongoNetworkError', message: 'failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]' } (node:12546) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] at Pool.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/topologies/server.js:503:11) at Pool.emit (events.js:160:13) at Connection.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/pool.js:326:12) at Object.onceWrapper (events.js:255:19) at Connection.emit (events.js:160:13) at Socket.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/connection.js:245:50) at Object.onceWrapper (events.js:255:19) at Socket.emit (events.js:160:13) at emitErrorNT (internal/streams/destroy.js:64:8) at process._tickCallback (internal/process/next_tick.js:152:19) (node:12546) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:12546) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 2018.3.7 いただいた回答の通り、mongodコマンドを入力してみましたが、未だ解決できず... 1.mongod入力 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] MongoDB starting : pid=663 port=27017 dbpath=/data/db 64-bit host=ICHIHANAMBA.local 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] db version v3.6.2 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] git version: 489d177dbd0f0420a8ca04d39fd78d0a2c539420 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] allocator: system 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] modules: none 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] build environment: 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] distarch: x86_64 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] target_arch: x86_64 2018-03-07T04:55:34.304+0900 I CONTROL [initandlisten] options: {} 2018-03-07T04:55:34.307+0900 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating 2018-03-07T04:55:34.307+0900 I CONTROL [initandlisten] now exiting 2018-03-07T04:55:34.307+0900 I CONTROL [initandlisten] shutting down with code:100 2.touch app.js、node app.jsコマンド入力 body-parser deprecated bodyParser: use individual json/urlencoded middlewares app.js:34:9 body-parser deprecated undefined extended: provide extended option node_modules/body-parser/index.js:105:29 { MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] at Pool.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/topologies/server.js:503:11) at Pool.emit (events.js:160:13) at Connection.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/pool.js:326:12) at Object.onceWrapper (events.js:255:19) at Connection.emit (events.js:160:13) at Socket.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/connection.js:245:50) at Object.onceWrapper (events.js:255:19) at Socket.emit (events.js:160:13) at emitErrorNT (internal/streams/destroy.js:64:8) at process._tickCallback (internal/process/next_tick.js:152:19) name: 'MongoNetworkError', message: 'failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]' } (node:666) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] at Pool.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/topologies/server.js:503:11) at Pool.emit (events.js:160:13) at Connection.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/pool.js:326:12) at Object.onceWrapper (events.js:255:19) at Connection.emit (events.js:160:13) at Socket.<anonymous> (/Users/miwaichihana/hoge/node_modules/mongodb-core/lib/connection/connection.js:245:50) at Object.onceWrapper (events.js:255:19) at Socket.emit (events.js:160:13) at emitErrorNT (internal/streams/destroy.js:64:8) at process._tickCallback (internal/process/next_tick.js:152:19) (node:666) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:666) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

該当のソースコード

■app.jsファイル "use strict"; var http = require('http'); var express = require('express'); var path = require('path'); var bodyparser = require('body-parser'); var mongoose = require('mongoose'); var Message = require('./schema/Message'); var app = express(); mongoose.connect('mongodb://localhost:27017/chatapp', function(err){ if(err){ console.error(err); }else{ console.log("successfully connected to MongoDB."); } }); app.use(bodyparser()) app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); app.get("/", function(req, res, next){ Message.find({}, function(err, msgs){ if(err) throw err; return res.render('index', {messages : msgs}); }); }); app.get("/update", function(req, res, next){ return res.render('update'); }); app.post("/update", function(req, res, next){ var newMessage = new Message({ username : req.body.username, message : req.body.message }); newMessage.save((err) => { if(err)throw err; return res.redirect("/"); }); }); var server = http.createServer(app); server.listen('3000'); ■schemaフォルダ > Message.jsファイル var mongoose = require('mongoose'); var Message = mongoose.Schema({ username : String, message : String, date : {type : Date, default : new Date()} }); module.exports = mongoose.model('Message', Message) ■viewsフォルダ > index.pugファイル <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> </head> <body> <h1>投稿一覧</h1> <section> each msg in messages <div> <h2>#{msg.username}</h2> <time>#{msg.date}</time> <p>#{msg.message}</p> </div> </section> </body> </html> ■viewsフォルダ > update.pugファイル <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> </head> <body> <h1>メッセージを保存</h1> <form action="update" method="POST"> <input type="text" name="username" placeholder="名前"> <textarea placeholder="メッセージ" name="message"></textarea> <button type="submit">送信</button> </form> </body> </html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

mongo database自体を起動していないのではないでしょうか?

mongodでmongo databaseは起動しましたか?

更新 - 20180307 - 17:28

2018-03-07T04:55:34.307+0900 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating

mongoDBがデータを保存する場所が未作成のようです。

デフォルトでは保存先は/data/dbなので、とりあえず保存先を以下のようなかたちで作成する必要があります。

sudo mkdir -p /data/db

その後、作成したディレクトリに書き込み権限を与える必要があるので、以下を実行します。

whoami whoamiの結果

whoamiのところにはユーザー名が表示されます。

sudo chown -Rv whoamiの結果 /data/db

whoamiで表示されたユーザーに書き込み権限を与える

とりあえず上記試してみて下さい。それでもエラーがある場合はまた他の対応がひつようになってくるとおもいます。

投稿2018/02/28 20:40

編集2018/03/07 08:35
HayatoKamono

総合スコア2415

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

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

Miwa_Ichihana

2018/03/06 20:24

ご回答ありがとうございます! また、返信が遅くなり大変申し訳ありませんでした。 mongodコマンドを入力してみましたが、解決には至らず...でした。 2018.3.7「発生している問題・エラーメッセージ」欄に追記しました。 また、ご回答・アドバイスなどいただければ幸いです。
Miwa_Ichihana

2018/03/08 22:18

教えていただいたコマンドを入力することで解決できました! ありがとうございます! また、機会があればよろしくお願いいたします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問