Lập trình Nodejs Javascript
Nguyễn Nhân  

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

Comments

1 Comment

  1. Khách

    5

Leave A Comment