【发布时间】:2020-11-22 22:37:53
【问题描述】:
我正在使用 Mongoose 和 Express 创建我的第一个节点 js api。当我尝试发布数据时遇到一些问题,它不起作用。邮递员请求永远不会完成,并且数据不会被保存。请找到附加的代码并帮助我找出问题所在。另请注意,数据库连接已成功建立。
//Post.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 => Routes
const express = require("express");
const Post = require("../models/post");
const router = express.Router();
router.get("/", (req, res) => {
res.send("Posts");
});
router.post("/", (req, res) => {
try {
console.log(req.body);
const post = new Post({
title: req.body.title,
description: req.body.description,
});
post
.save()
.then((data) => res.json(data))
.catch((err) => res.json(err));
} catch (error) {
console.log(error);
}
});
module.exports = router;
// app.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
require("dotenv/config");
const bodyParser = require("body-parser");
//Import Routes
const postRoute = require("./routes/posts");
//Middlewares
app.use(bodyParser.json());
//Routes
app.use("/posts", postRoute);
// Connect to db
mongoose.connect(
process.env.DB_CONNECTION,
{ useNewUrlParser: true, useUnifiedTopology: true },
() => {
console.log("connected to db !");
}
);
app.listen(3000);
更新
数据库连接本身似乎有问题。下面是我的连接字符串。我处理了错误的猫鼬连接,我得到了屏幕截图中显示的错误。
mongodb://<dbuser>:<dbpassword>@ds023550.mlab.com:23550/roofapp
【问题讨论】:
标签: node.js rest express mongoose