简单的设置Express服务器连接MongoDB数据库
全栈类别里面最常见的可能就是MERN(Mongodb, Express, React, Nodejs)了。其中React和Nodejs是绝大部分前端工程师都有涉及的部分。对大部分前端工程师来讲,向全栈出发的第一步是加深了解Mongodb和Express了。
数据库Mongodb语法和结构和JS,JSON有类似之处,所以很多JS工程师偏爱Mongodb。更不用说Express了,作为一个基于NodeJS的后端库,很容易上手。
我们可以写一写最基本的Mongodb和Express连接的实现。
首先我们要用到的库有:
- mongoose:是Mongodb的一个对象模型工具,让Nodejs操作Mongodb数据库变得更加灵活简单。
- config:帮助归纳方便管理Node配置参数的一个库。
1. 设置config
这个config库会自动调用项目下./config/default.json
里面的数据。我们需要手动设置这个default.json
文件:
{
"mongoURI":"YOUR_MONGODB_SECRET_STRING"
}
mongoURI的值包含你的Mongodb用户名和密码,具体字符串你可以从Mongodb数据库设置里面找到。具体格式为一个字符串以“mongodb+srv://
切记这个设置里面有敏感数据,不要提交到代码仓库里面。记得把包含敏感数据的文件路径写进.gitignore里面。
2. 设置mongoose连接数据库
我在config文件夹下面又创造了db.js
文件来处理mongoose连接数据库的部分。
const mongoose = require('mongoose');
const config = require('config');
const db = config.get('mongoURI');
const connectDB = async () => {
try {
await mongoose.connect(db);
console.log('MongoDB已连接...');
} catch (err) {
console.error(err.message);
// 如果有错误调用process.exit()让Nodejs结束进程,参数1为'failure'
process.exit(1);
}
}
module.exports = connectDB;
3. 设置express
项目根目录下的server.js
const express = require('express');
const connectDB = require('./config/db');
const PORT = process.env.PORT || 5000;
const app = express();
// Connect DB
connectDB();
app.get('/', (req, res) => {
res.send('API Running');
});
app.listen(PORT, () => console.log(`Server started on port ${PORT}`));
很简单明了。
现在运行node或者nodemon server.js就应该能看到数据库连接的信息和服务器在听5000端口的log信息了。