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

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

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

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

MongoDB

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

Node.js

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

Q&A

解決済

1回答

2935閲覧

nodeサーバーで発生するMongoParseErrorを解決したい。

toshihirokato

総合スコア20

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

MongoDB

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

Node.js

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

0グッド

0クリップ

投稿2019/11/26 01:40

前提・実現したいこと

現在、Node.js, Vue.jsを用いてamazonサイトのクローンアプリを作成しております。
Node.jsでサーバーのロジックを実装し、サーバーを立ち上げた際に以下のエラーが発生しました。

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

terminal

1[nodemon] 2.0.1 2[nodemon] to restart at any time, enter `rs` 3[nodemon] watching dir(s): *.* 4[nodemon] watching extensions: js,mjs,json 5[nodemon] starting `node server.js` 6Listening on PORT 3000 7{ MongoParseError: Invalid connection string 8 at parseConnectionString (/Users/user/amazon/server/node_modules/mongodb/lib/core/uri_parser.js:507:21) 9 at connect (/Users/user/amazon/server/node_modules/mongodb/lib/operations/connect.js:268:3) 10 at ConnectOperation.execute (/Users/user/amazon/server/node_modules/mongodb/lib/operations/connect.js:191:5) 11 at executeOperation (/Users/user/amazon/server/node_modules/mongodb/lib/operations/execute_operation.js:83:26) 12 at MongoClient.connect (/Users/user/amazon/server/node_modules/mongodb/lib/mongo_client.js:216:10) 13 at Promise (/Users/user/amazon/server/node_modules/mongoose/lib/connection.js:638:12) 14 at new Promise (<anonymous>) 15 at NativeConnection.Connection.openUri (/Users/user/amazon/server/node_modules/mongoose/lib/connection.js:635:19) 16 at Mongoose.connect (/Users/user/amazon/server/node_modules/mongoose/lib/index.js:328:15) 17 at Object.<anonymous> (/Users/user/amazon/server/server.js:11:10) 18 at Module._compile (internal/modules/cjs/loader.js:778:30) 19 at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 20 at Module.load (internal/modules/cjs/loader.js:653:32) 21 at tryModuleLoad (internal/modules/cjs/loader.js:593:12) 22 at Function.Module._load (internal/modules/cjs/loader.js:585:3) 23 at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) 24 name: 'MongoParseError', 25 [Symbol(mongoErrorContextSymbol)]: {} } 26

該当のソースコード

serverjs

1const express = require('express') 2const morgan = require('morgan') 3const bodyParser = require('body-parser') 4const mongoose = require('mongoose') 5const dotenv = require('dotenv') 6 7dotenv.config() 8 9const app = express(); 10 11mongoose.connect( 12 process.env.DATABASE, 13 { useNewUrlParser: true, useUnifiedTopology: true }, 14 err => { 15 if (err) { 16 console.log(err); 17 } else { 18 console.log('Connected to the database'); 19 } 20 } 21) 22 23// Middlewares 24app.use(morgan('dev')) 25app.use(bodyParser.json()) 26app.use(bodyParser.urlencoded({ extended: false })) 27 28// GET - Retrieve data from the server 29app.get('/', (req, res) => { 30 res.json('Hello amazon clone') 31}) 32 33// POST - send data from fronted to backend 34app.post('/', (req, res) => { 35 console.log(req.body.name); 36 37}) 38 39app.listen(3000, err => { 40 if(err) { 41 console.log(err); 42 } else { 43 console.log('Listening on PORT', 3000); 44 } 45}) 46

試したこと

こちらのサイトを参考に、npm i dotenvをコマンド入力、
server.jsにて

const dotenv = require('dotenv')
dotenv.config()

を実装し、改めてnodemon server.jsをコマンド入力しても解決には至りませんでした。

補足情報(package.json)

{
"name": "server.js",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"mongodb": "^3.3.4",
"mongoose": "^5.7.12",
"morgan": "^1.9.1",
"npm": "^6.13.1"
}
}

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

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

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

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

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

guest

回答1

0

ベストアンサー

server.jsに

mongoose.connect(
process.env.DATABASE,

とありますので、DATABASE 環境変数が正しく設定されていないものと思われます。

dotenv パッケージを利用されるのであれば、プロジェクトのディレクトリ内に .env というファイルを作成し、プログラムが必要とする環境変数を記載してみてください。

# .env に以下の記述を追加(MongoDB接続情報は必要に応じて書き換えてください) DATABASE=mongodb://localhost/xxxxxx

もしくは、シェルでサーバーを起動する前に DATABASE 環境変数を設定するとよいと思われます。
(この場合は dotenv 不要)

export DATABASE="mongodb://localhost/xxxxxx" nodemon server.js

投稿2019/11/27 07:31

notakaos

総合スコア84

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

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

toshihirokato

2019/11/27 08:56

ご回答いただきありがとうございます! 早速、実装いたします!!
toshihirokato

2019/11/27 09:26

ありがとうございます! 無事、サーバーを立ち上げることができました????‍♂️????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問