错误:
无法读取未定义的属性(读取“名称”)
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");
});
同样的代码在另一个项目中工作,所以我对这里发生的事情感到困惑。我几乎尝试了所有建议,但没有任何效果。
您可以使用主体解析中间件来读取表单的输入并将其存储为可通过
req.body
访问的 JavaScript 对象。
安装body-parser,它是一个解析传入请求正文以读取 HTTP POST 数据的中间件。
$ npm install body-parser
然后,将其导入到index.js文件中
const bodyParser = require("body-parser");
并添加这一行:
app.use(bodyParser.json());