Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发布到MongoDB,我做错了什么?_Javascript_Node.js_Reactjs_Mongodb_Express - Fatal编程技术网

Javascript 发布到MongoDB,我做错了什么?

Javascript 发布到MongoDB,我做错了什么?,javascript,node.js,reactjs,mongodb,express,Javascript,Node.js,Reactjs,Mongodb,Express,我试图向MongoDB发布一个新条目,我知道这个问题是我在服务器文件中调用路由的地方,但我不知道如何解决这个问题。我需要能够在postman中测试API并将其发布到数据库 我收到以下错误: /Users/ryan/Desktop/leasequery/operations backend/node_modules/express/lib/router/index.js:458 抛出新的TypeError('Router.use()需要一个中间件函数,但得到了'+gettype(fn)) ^ Ty

我试图向MongoDB发布一个新条目,我知道这个问题是我在服务器文件中调用路由的地方,但我不知道如何解决这个问题。我需要能够在postman中测试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) 在功能上。(/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) 反对。(/Users/ryan/Desktop/leasequery/operations backend/server.js:12:5) at模块编译(内部/modules/cjs/loader.js:778:30) at Object.Module._extensions..js(internal/modules/cjs/loader.js:789:10) at Module.load(内部/modules/cjs/loader.js:653:32) 在tryModuleLoad(内部/modules/cjs/loader.js:593:12) at Function.Module._load(内部/modules/cjs/loader.js:585:3) 位于Function.Module.runMain(internal/modules/cjs/loader.js:831:12) 启动时(内部/bootstrap/node.js:283:19) 在bootstrapNodeJSCore(internal/bootstrap/node.js:622:3) [nodemon]应用程序崩溃-正在等待文件更改,然后再启动

我使用的是中间件(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}`));

routes/status.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...");
    }
  }
);

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;
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);

routes/status.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...");
    }
  }
);

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;

很高兴你能找到答案。请注意,离开模型方法以简化代码:(create、updateOne、deleteOne等)您是否碰巧知道如何格式化日期,使其保存到数据库中为“MM/DD/YYYY”。默认情况下,mongo将日期存储为BSON:。如果要以特定格式存储日期,则除了使用
日期
(这样您仍然可以查询该日期)外,还可以使用
字符串
类型。