发布到 mongoose 时无法读取未定义的属性(读取“名称”)

问题描述 投票:0回答:1

错误:

无法读取未定义的属性(读取“名称”)

router.post("/", async (req, res) => {
const newItem = new items({
    name: req.body.name
})

try {
    const submitted = await items.save();
    console.log(submitted);
}
catch (err) {
    console.log(err)
}
})

架构:

const mongoose = require("mongoose");

 const pieces = new mongoose.Schema({
    name: String
 })

 module.exports = mongoose.model("items", pieces);




//index
const express = require("express");
const app = express();
const mongoose = require("mongoose");
require("dotenv/config");

const product = require("../backend/Router/productRoutes");

app.use("/add", product);
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

mongoose.connect(process.env.MONGO_DB, () => {
    console.log("DB CONNECTED")
});

app.listen(3500, () => {
    console.log("server up");
});

同样的代码在另一个项目中工作,所以我对这里发生的事情感到困惑。我几乎尝试了所有建议,但没有任何效果。

node.js mongodb express mongoose
1个回答
0
投票

您可以使用主体解析中间件来读取表单的输入并将其存储为可通过

req.body
访问的 JavaScript 对象。

安装body-parser,它是一个解析传入请求正文以读取 HTTP POST 数据的中间件。

$ npm install body-parser

然后,将其导入到index.js文件中

const bodyParser = require("body-parser");

并添加这一行:

app.use(bodyParser.json());
© www.soinside.com 2019 - 2024. All rights reserved.