
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