#node.js #mongodb #express #mongoose
Вопрос:
в mongodb при отправке формы я получаю пустые коллекции, не получая в них никаких данных. согласно моему запросу post, я не получаю ни сохраненный элемент, ни какую-либо ошибку, только пустую после нажатия кнопки отправки. только база данных ContactDance с пустыми коллекциями создается по имени контактов (имя коллекции).мой код прямо здесь.
const fs=require("fs");
const express=require("express");
const path=require("path");
const app=express();
app.use(express.json());
const mongoose = require("mongoose");
const bodyparser=require("body-parser");
mongoose.connect("mongodb://localhost:27017/ContactDance", {useNewUrlParser: true,useUnifiedTopology: true});
const port=80;
const ContactSchema = new mongoose.Schema({
name: String,
email:String,
number:String,
address:String,
city:String,
});
const Contact = mongoose.model("Contact", ContactSchema);
app.use("/static",express.static("static"));
app.use(express.urlencoded());
app.set("view engine","pug");
app.set("views", path.join(__dirname,"views"));
app.get("/",(req,res)=>{
res.status(200).render("home.pug");
})
app.get("/contact",(req,res)=>{
const params={ }
res.status(200).render("contact.pug",params);
})
app.post("/contact",(req,res)=>{
var myData=new Contact(req.body);
myData.save().then(()=>{
res.send("this item has been saved");
}).catch(()=>{
res.status(400).send("item is not saved");
})
})
app.listen(port,()=>{
console.log(`server is running on ${port}`)
});
``
Комментарии:
1. Вы уверены
body-parser
, что правильно использовали (см. Экспресс-анализатор тела .