Hướng dẫn kết nối MongoDB cho ứng dụng NodeJs/ExpressJs
Nếu bạn bắt đầu dự án với react-starter-kit [isomorphic web app] thì có thể bạn sẽ cần cách kết nối vào cơ sở dữ liệu MongoDb
Nội dung chính
api/users.js
import { Router } from 'express'; import { ObjectID } from 'mongodb'; const router = new Router(); router.get('/:id', async (req, res, next) => { try { const db = req.app.locals.db; const user = await db.collection('user').findOne({ _id: new ObjectID(req.params.id) }, { email: 1, firstName: 1, lastName: 1 }); if (user) { user.id = req.params.id; res.send(user); } else { res.sendStatus(404); } } catch (err) { next(err); } }); export default router;
/config.js
export default { database: { url: 'mongodb://localhost:27017/example' } };
server.js
import express from 'express'; import Promise from 'bluebird'; import logger from 'winston'; import { MongoClient } from 'mongodb'; import config from './config'; const PORT = process.env.PORT || 3000; const server = express(); server.use('/api/users', require('./api/users')); server.get('/', (req, res) => { res.send('Hello World'); }); MongoClient.connect(config.database.url, { promiseLibrary: Promise }, (err, db) => { if (err) { logger.warn(`Failed to connect to the database. ${err.stack}`); } server.locals.db = db; server.listen(PORT, () => { const { address, port } = server.address(); logger.info(`Node.js server is listening at http://${address}:${port}`); }); });
Nếu có vấn đề gì không hiểu, vui lòng comment lại, mình sẽ trả lời nhé.
Nguồn: Medium
Khách
5