すでにデプロイ済みのmongoDB/Express.jsアプリのデータを取得するアプリを別で作成し、デプロイしてもよいのでしょうか?これはイレギュラーなことでしょうか?
同じDataBaseに対して別のアプリを作ることがあるのなら、問題ないのかなと思っておりますが、もしものことを考えると不安です。知っている方がいらっしゃればご教示お願いしたいです。私自身が基準を持ち合わせていないことが原因です。
デプロイ済みのアプリはアンケートアプリです。
仕様は簡単なフォームアンケートでDatabaseが絡むのは1つのpost関数のみです。
デプロイ先はHerokuで、無料のもの、addonでschdulerをいれています。DBはmonogoDBで,
次のような絶対パスになります。
javascript
1require('dotenv').config() 2if(process.env.NODE_ENV === 'production') { 3 module.exports = { 4 mongoURI: process.env.DB, 5 secret: 'mytest-question' 6 } 7} else { 8 module.exports = { 9 mongoURI: "mongodb://localhost:27017/questions", 10 secret: 'mytest-question' 11 } 12} 13 14コード
別のアプリではデータを取得して表示させるアプリです。
まだ作成途中ではありますが、次のようなコードでデータを取得します。
javascript
1//questions.js 2const router = express.Router() 3const { dbConnect } = require('../middleware/connection.js') 4 5 6dbConnect() 7 8mongoose.model('Question', new Schema({url: String, text: String, id: Number}), 'questions') 9 10var connection = mongoose.connection; 11 12 13router.get('/questions', async (req, res) => { 14 try { 15 16 await connection.db.collection("questions", function(err, collection){ 17 collection.find({}).toArray(function(err, data){ 18 res.send({ 19 data: data 20 }) 21 }) 22 }); 23 24 }catch(err) { 25 console.log(err) 26 } 27}) 28 29module.exports = router; 30
javascript
1 2// connection.js 3const mongoose = require('mongoose'); 4const db = require('../config/keys').mongoURI; 5 6 7 8module.exports = { 9 dbConnect(req, res, next) { 10 mongoose.connect(db, { useNewUrlParser:true, useUnifiedTopology: true}) 11 .then(() => { 12 console.log('DB接続しました') 13 }) 14 .catch((err) => { 15 console.log('err:DB接続できませんでした',err ) 16 }) 17 } 18} 19
DBはデプロイしているアプリのDBを使用したいです。
問題ないのでしょうか。
気になっているのはイレギュラーなことをしようとしているのか、それとも普通のことをしているのかの基準がないので解消したいです。
ご意見ありましたらコメントお願いします。
あなたの回答
tips
プレビュー