首页 > 解决方案 > 从nodejs插入表单数据到mongodb

问题描述

const express = require("express");
const handlebars = require("express-handlebars");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const path = require("path");

const app = express();
const port = 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.engine(".hbs", handlebars({ defaultLayout: "main", extname: ".hbs" }));
app.set("view engine", ".hbs");
app.use(express.static(path.join(__dirname, "public")));
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

mongoose.Promise = global.Promise;
mongoose.connect(
"mongodb://usresa:passcode@mongodb-rukshi-shard-00-00.nerbj.gcp.mongodb.net:27017,mongodb-rukshi-shard-00-01.nerbj.gcp.mongodb.net:27017,mongodb-rukshi-shard-00-02.nerbj.gcp.mongodb.net:27017/db_name?ssl=true&replicaSet=atlas-dxrzem-shard-0&authSource=admin&retryWrites=true&w=majority",
{ useNewUrlParser: true, useUnifiedTopology: true }
);
const nameSchema = new mongoose.Schema({
name: String,
naquantityme: String,
description: String,
});
const User = mongoose.model("User", nameSchema);

app.get("/", (req, res) => {
res.render("login", { layout: "loginlayout" });
});

app.get("/home", (req, res) => {
res.render("dashboard", { layout: "main" });
});

app.use("/AddProduct", (req, res) => {
res.render("AddProduct", { layout: "main" });
});

app.post("/addproductform", (req, res) => {
var myData = new User(req.body);
myData
.save()
.then((item) => {
res.send("Product saved to database");
})
.catch((err) => {`enter code here`
res.status(400).send("Unable to save to database");
});`enter code here
});

app.listen(port, () => {
console.log("Server listening on port " + port);
});



///// Front End
 <form id="form_validation" method="post" action="/addproductform">
                                <div class="form-group form-float">
                                    <input type="text" class="form-control" placeholder="Product Name" name="name"
                                        required>
                                </div>
                                <div class="form-group form-float">
                                    <input type="text" class="form-control" placeholder="Quantity" name="quantity"
                                        required>
                                </div>
                                {{!-- <div class="form-group">
                                    <div class="radio inlineblock m-r-20">
                                        <input type="radio" name="gender" id="male" class="with-gap" value="option1">
                                        <label for="male">Male</label>
                                    </div>
                                    <div class="radio inlineblock">
                                        <input type="radio" name="gender" id="Female" class="with-gap" value="option2"
                                            checked="">
                                        <label for="Female">Female</label>
                                    </div>
                                </div> --}}
                                <div class="form-group form-float">
                                    <textarea name="description" cols="30" rows="5" placeholder="Description"
                                        class="form-control no-resize" required></textarea>
                                </div>
                                {{!-- <div class="form-group">
                                    <div class="checkbox">
                                        <input id="checkbox" type="checkbox">
                                        <label for="checkbox">I have read and accept the terms</label>
                                    </div>
                                </div> --}}
                                <button class="btn btn-raised btn-primary waves-effect" id="submitDetails"
                                    name="submitDetails" type="submit">SUBMIT</button>
                            </form>

这是 appjs 代码。休息我在视图文件夹中有 AddProduct。访问视图的默认设置是从视图文件夹。此 addproduct 表单未将数据提交到数据库。我们如何改变不同视图的路径这个 addproduct 表单没有将数据提交到数据库。此 addproduct 表单未将数据提交到数据库。此 addproduct 表单未将数据提交到数据库。

标签: node.jsmongodb

解决方案


推荐阅读