>
Z1206: hello
简单的设置Express服务器连接MongoDB数据库

简单的设置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://<username>:<password>@开头。

切记这个设置里面有敏感数据,不要提交到代码仓库里面。记得把包含敏感数据的文件路径写进.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信息了。