MongoDBの定義
データベース=test_db
collection=user
※userドキュメントに2つデータがある
ソース
index.js
var express = require("express");
var app = express();
const MongoClient = require('mongodb').MongoClient;
const testRouter = require('./routers/test');
MongoClient.connect('mongodb://db', { minPoolSize: 20, maxPoolSize: 20 }, async (error, client) => {
if (error) {
console.log('error :', error);
} else {
// req.app.locals.dbでアクセスできるように設定
app.locals.db = client.db('test_db');
// add Router
app.use('/test', testRouter);
// start express server
var server = app.listen(3000, function(){
console.log("Node.js is listening to PORT:" + server.address().port);
});
}
})
routers/test.js
var express = require('express')
var router = express.Router()
router.get('/', async (req, res) => {
// connection poolを使いまわし
const result = await res.app.locals.db.collection('user').find().toArray();
res.send(result.map(row => row.name).join(','));
})
module.exports = router
起動確認
Connectionをクローズしていないけど問題ないか確認
info nodeのプロセスが切れると、close()関数を呼んでいなくても自動で解放されるっぽい ※公式でもcloseしてないので問題ないと思います。