node.js - post.save 不起作用(Node/Express/MongoDB)
问题描述
我是节点和创建 api 的新手。我能够在请求正文中传递一个 json 并将其记录在控制台上,但是当我尝试将此数据添加到我的数据库时出现问题。我正在尝试将数据添加到 DB(cloud:Atlas) 但 post.save 没有运行。这是我的 post.model.js
const mongoose = require('mongoose')
const PostSchema = mongoose.Schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
})
module.exports = mongoose.model('Posts', PostSchema)
这是控制器(posts.js)
const express = require('express')
const router = express.Router()
const Posts = require('../model/posts.model')
router.get('/', (req, res) => res.send('We are on posts page'))
router.get('/specific', (req, res) => res.send('We are on specific post page'))
router.post('/', async (req, res) => {
const post = new Posts({
title: req.body.title,
description: req.body.description
})
// try{
// const savedPost = await this.post.save()
// res.json(savedPost)
// }
// catch(arr){
// res
// }
console.log('before save');
post.save().then(data => {
console.log("in then");
res.json(data)
})
.catch(err => {
console.log('in catch');
res.json({ message: err })
})
})
module.exports = router
这是我的 app.js
const express = require('express')
const app = express()
const mongoose = require('mongoose')
const bodyParser =require('body-parser')
require('dotenv/config')
//Import Routes
const postsRoutes = require('./routes/posts')
//Middelware
app.use(bodyParser.json())//to be used before app.use(<routes>)
app.use('/posts', postsRoutes)
//app.use(express.bodyParser())
//ROUTES
app.get('/', (req, res) => res.send('We are on home page'))
app.get('/posts', (req, res) => res.send('WE are on posts page '))
//Connect to DB
mongoose.connect('DB_CONNECTION', { useNewUrlParser: true }, () => console.log('Connected to db'))
//how to start listening to the server
app.listen(3000)
还有什么时候会在我的数据库中形成集合?当我添加第一个数据条目时会发生这种情况吗?
解决方案
你没有连接到你的 monogodb。您必须添加 IP 地址和数据库的名称。如果没有该名称的数据库,它将创建一个新的。
mongoose.connect('mongodb://localhost/myDB', {
useNewUrlParser: true
});
推荐阅读
- powershell - PowerShell 子字符串“字符串长度之外的索引”
- eclipse-plugin - Eclipse 的 ADT 插件在 2020 年仍然有效吗?
- javascript - 创建一个列表元素并使用用户的输入为它着色(使用 javascript)
- c# - C# HTML 表的输出格式不正确
- powershell - 仅当路径有空格时,使用 Raw 非参数获取内容错误
- javascript - 即使默认选中无线电,表单提交也会显示错误
- c# - 使用派生类重载控制流
- android - 在 Android 上设置 StatusBar 颜色的正确方法
- javascript - Socket.io 发出返回不同值的事件
- javascript - 如何找到未处理的拒绝而被拒绝而没有错误