【发布时间】:2021-07-12 15:41:14
【问题描述】:
我正在学习 MERN 堆栈开发,当我尝试通过 .env 文件连接数据库时,一切正常。这是我的数据库字符串的样子:
MYDATABASE_String="mongodb+srv://avnish:avnish@cluster0.ojaf1.mongodb.net/registeredUsers?retryWrites=true&w=majority"
当我尝试注册用户时,它工作正常,他们进入已注册用户。但是现在,我也在实现博客部分,所以当我发布一个新博客时,它会在注册用户下。
现在我想知道如何动态创建一个新数据库,以便它进入 blogContent 数据库而不是 registerUsers 数据库。
这是我的 server.js 的样子:
const express = require('express');
const mongoose = require('mongoose')
const app = express();
const dotenv = require('dotenv')
const routesURLs = require('./routes/routes')
const registerRouter = require('./routes/register')
const loginRouter = require('./routes/login')
const blogRouter = require('./routes/blog')
const cors = require('cors')
dotenv.config()
mongoose.connect(process.env.DATABASE_ACCESS,{
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex:true
},()=>console.log(
'database connected successfully'),
)
app.use(express.json())
app.use(cors())
app.use('/',routesURLs)
app.use('/register',registerRouter)
app.use('/publish',blogRouter)
app.listen(4000, () => {
console.log(`Server started on port`);
});
这是我的博客架构:
const mongoose = require('mongoose')
const blogModel = new mongoose.Schema({
title:{
type:String,
required:true,
},
category:{
type:String,
required:true,
},
slug:{
type:String,
required:true,
},
description:{
type:String,
},
content:{
type:String,
required:true
},
featuredImage:{
type:String,
},
publishedAt:{
type:Date,
default:Date.now
}
})
module.exports = mongoose.model('blog',blogModel)
这是我的 blog.js
const { response, request } = require('express');
const express = require('express');
const router = require('express').Router();
const blogModel = require('../models/Blog')
router.post('/',async (req,res)=>{
const blogArticle = new blogModel({
title:req.body.title,
description:req.body.description,
category:"haha",
slug:"some-thing-here",
content:req.body.description,
})
blogArticle.save().then(data=>{
res.json({
data:data,
message:"Hurray all done"
})
}).catch(error=>{
res.json({
error:error,
message:"Lol! Nothing works"
})
})
})
module.exports = router;
注意 当我从 mydatabase 字符串中删除 registeresUsers 时,每个数据都会进入 Test 数据库。
【问题讨论】:
标签: node.js reactjs mongodb mongoose mongoose-schema