当前位置: 首页 > 知识库问答 >
问题:

在MongoDB上发帖,我做错了什么?

邹祺然
2023-03-14

我试图发布一个新的条目到MongoDB,我知道这个问题是我在服务器文件中调用我的路由的地方,但我不知道如何解决这个问题。我需要能够测试在邮递员的API和张贴到数据库。

我得到以下错误:

/users/ryan/desktop/leasequery/operations-backend/node_modules/express/lib/router/index.js:458抛出新的TypeError(“router.use()需要一个中间件函数,但得到了一个”+gettype(fn))^

TypeError:router.use()需要一个中间件函数,但在function.use(/users/ryan/desktop/leasequery/operations-backend/node_modules/express/lib/router/index.js:458:13)在function。(/users/ryan/desktop/leasequery/operations-backend/node_modules/express/lib/application.js:220:21)位于array.foreach()位于function.use(/users/ryan/desktop/leasequery/operations-backend/node_modules/express/lib/application.js:217:7)位于object.(/users/ryan/desktoes/leasequery/operations-backend/server.js:12:5)在module._compile(内部/module/cjs/loader.js:778:30)在object.module._extensions.js(内部/module/cjs/loader.js:789:10)在module.load(内部/module/cjs/loader.js:653:32)在tryModuleLoad(内部/module/cjs/loader.js:593:12)在function.module.load(

我正在使用一个中间件(express-validator)

server.js

const express = require("express");
const connectDB = require("./config/db");

const app = express();

connectDB();

app.use(express.json({ extended: false }));

app.get("/", (req, res) => res.json({ msg: "Welcome to Operations" }));

app.use("/api/status", require("./routes/status"));

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => console.log(`Server listening on Port ${PORT}`));

路由/状态.js

const express = require("express");
const router = express.Router();
const { check, validationResult } = require("express-validator");

const Status = require("../models/Status");

router.post(
  "/",
  [
    check("name", "Please Add Name")
      .not()
      .isEmpty(),
    check("date", "Please add date")
      .not()
      .isEmpty(),
    check("comment", "Please add comment")
      .not()
      .isEmpty()
  ],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    const { name, date, comment } = req.body;

    try {
      entry = new Entry({
        name,
        date,
        comment
      });

      await entry.save();
    } catch (err) {
      console.error(err.message);
      res.status(500).send("Server Error...");
    }
  }
);

models/status.js

const mongoose = require("mongoose");

const StatusSchema = mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    required: true
  },
  comment: {
    type: String,
    required: true
  }
});

module.exports = mongoose.model("status", StatusSchema);

共有1个答案

百里承业
2023-03-14

路由/状态.js

const router = express.Router();
const { check, validationResult } = require("express-validator");

const Status = require("../models/Status");

router.post(
  "/",
  [
    check("name", "Please Add Name")
      .not()
      .isEmpty(),
    check("date", "Please add date")
      .not()
      .isEmpty(),
    check("comment", "Please add comment")
      .not()
      .isEmpty()
  ],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    const { name, date, comment } = req.body;

    try {
      entry = new Entry({
        name,
        date,
        comment
      });

      await entry.save();
    } catch (err) {
      console.error(err.message);
      res.status(500).send("Server Error...");
    }
  }
);

module.exports = router;
 类似资料:
  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • } 它正在抛出这些错误。

  • 11:15:57创建表如果不存在tblcompany(companyid INT(11)无符号NOT NULL,custfirst VARCHAR(50),custlast VARCHAR(50),company VARCHAR(50),custphone VARCHAR(50), custemail VARCHAR(50),主键(companyid),索引(companyid),约束外键(com

  • 我正试图将即时消息添加到现有的应用程序中。但是我不确定应该如何配置socket.io模块。我已经尝试了以下方法: 因为打开一个页面时没有记录connected,所以我假设丢失了一些东西。我的错误在哪里?

  • 我是MVVMCROSS6.0和Xamarin的新手。 null ConfigurationChanges=ConfigChanges.Screensize ConfigChanges.Orientation)]公共类MainActivity:MvxFormsAppCompatActivity{protected override void OnCreate(Bundle Bundle){TabLa

  • 问题内容: 我有一些代码来计算圆的属性: 它计算周长,但不计算其余部分。 问题答案: 是一个,也一个,这意味着不能在第二个打印语句中使用。试试那里。 回想一下,这是浮点数,而整数。在的文档中对此进行了概述(请参阅“ 格式化字符串语法”)。