mongodb 中的错误“Route.post() 需要一个回调函数,但得到了一个[对象未定义]”

编程入门 行业动态 更新时间:2024-10-04 17:32:15

mongodb 中的错误“Route.post() 需要一个<a href=https://www.elefans.com/category/jswz/34/1771356.html style=回调函数,但得到了一个[对象未定义]”"/>

mongodb 中的错误“Route.post() 需要一个回调函数,但得到了一个[对象未定义]”

这是我的主文件index.js

type here
const express = require("express");
const app = express();

require("dotenv").config();
const port = process.env.port || 4000;

app.use(express.json());

const createBlog = require("./routes/blogRoutes");

app.use("/santi/api/v1",createBlog);

app.listen(port, () => {
    console.log("App run in 3000 port");
})

const dbConnect = require("./config/database");
dbConnect();

app.get("/", (req,res) => {
    res.send(`<h1>this is homepage</h1>`);
})

这是我的路线

const express = require("express");
const router = express.Router();

const {createBlog} = require("../controlers/createBlog");

router.post("/createBlog",createBlog);

module.exports = router;

这是我的控制器文件

const createPost = require("../models/post");

exports.post = async (req,res) => {
    try {
        const {title,description} = req.body;
        const response = await createPost.create({title,description});

        res.status(200).json({
            status:true,
            message:"Insert seccessfully",
            data:response
        })
    }
    catch(error) {
        console.error(err);
        res.status(500).json({
            status:false,
            message:error.message,
            data:"Server issue"
        })
    }
}

这是我的模型文件

const mongoose = require("mongoose");

const blogPostSchema = new mongoose.Schema(
    {
        title:{
            type:String,
            required:true,
            maxlength:50
        },
        description:{
            type:String,
            required:true,
            maxlength:50
        }
    }
)

module.exports = mongoose.model("blogPost",blogPostSchema);

我安装了 nodemon 和 mongoose,但在写入“npm run dev”命令后终端中仍然显示以下错误

[email protected] 开发 nodemon index.js

[nodemon] 2.0.22 [nodemon]随时重启,输入

rs
[nodemon] 观看路径:. [nodemon] 观察扩展:js、mjs、json [nodemon] 开始
node index.js
C:\Users\SWETTA\OneDrive\Desktop log_backend ode_modules xpress\lib 外 oute.js:211 抛出新错误(味精); ^

错误:Route.post() 需要一个回调函数,但得到了一个 [object Undefined] 在路线。 [作为帖子] (C:\Users\SWETTA\OneDrive\Desktop log_backend ode_modules xpress\lib 外 oute.js:211:15) 在原型。 [作为帖子] (C:\Users\SWETTA\OneDrive\Desktop log_backend ode_modules xpress\lib 外\index.js:521:19) 在对象。 (C:\Users\SWETTA\OneDrive\Desktop log_backend outes logRoutes.js:6:8) 在 Module._compile (node:internal/modules/cjs/loader:1254:14) 在 Module._extensions..js (node:internal/modules/cjs/loader:1308:10) 在 Module.load (node:internal/modules/cjs/loader:1117:32) 在 Module._load (node:internal/modules/cjs/loader:958:12) 在 Module.require (node:internal/modules/cjs/loader:1141:19) 在要求(节点:内部/模块/cjs/助手:110:18) 在对象。 (C:\Users\SWETTA\OneDrive\Desktop log_backend\index.js:9:20)

解决方案是什么?

回答如下:

我在您的路由器代码中看到一个小错误。
您正在控制器中将函数导出为

post
,并将其导入路由器中为
createBlog
。而且您的控制器不会导出任何名称为
createBlog
的东西,因此问题是。

只需将路由器代码更改为:

const express = require("express");
const router = express.Router();

const {post} = require("../controlers/createBlog");

router.post("/createBlog",post);

module.exports = router;

更多推荐

mongodb 中的错误“Route.post() 需要一个回调函数,但得到了一个[对象未定义]”

本文发布于:2024-05-30 21:29:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770943.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:回调   函数   得到了   对象   错误

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!