当前位置:网站首页>Use nodejs+express+mongodb to complete the data persistence project (with modified source code)
Use nodejs+express+mongodb to complete the data persistence project (with modified source code)
2022-07-03 20:24:00 【Brave * Niuniu】
utilize nodejs+express+mongodb Complete the data persistence project
Additions and deletions

- Available console view mongodb Whether the database data is successfully stored

A problem encountered , Back to id Attribute values are quoted . Special attention 
Using mongodb Before database storage , Remember to open the database , Then connect to the database 
student.js Core code :
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/test');
var Schema = mongoose.Schema;
var studentSchema = new Schema({
name: {
type: String,
required: true
},
sex: {
type: Number,
// Enumerate these numbers
enum: [0, 1],
default: 1
},
age: {
type: Number
},
hover: {
type: String
}
})
// Export the model constructor directly
module.exports = mongoose.model('Student', studentSchema)
router.js Modify the core code
// Routing module design set
var fs = require('fs');
var path = require('path');
var Student = require('./student');
/* Student.updataByid({ id: 1, name: " Li Si ", age: 19 }, function (err) { if (err) { return console.log(' Modification failed '); } console.log(' Modification successful '); }) */
var express = require('express');
// Create a routing container
var router = express.Router();
// Mount the router to router In the container
router.get('/students', function (req, res) {
// Parameter 2 is optional , hold uft8 Characters are converted into strings we know
/* fs.readFile(path.join(__dirname, './db.json'), 'utf8', function (err, data) { if (err) { // Status code 500, Server error console.log(" Something went wrong "); // return res.status(500).send('Server error.'); } res.render('index.html', { // The data read from the file must be a string // So we must turn it into an object students: JSON.parse(data).student }); }) */
Student.find(function (err, students) {
if (err) {
return res.status(500).send('Server error.');
}
res.render('index.html', {
students: students
});
})
})
router.get('/students/new', function (req, res) {
res.render('new.html');
})
router.post('/students/new', function (req, res) {
/* 1. Get form data 2. Handle ( Save the data in db.json Achieve persistence ) 3. Send a response */
// console.log(req.body);
// Read it out first , Turn to object
// Then go to the object push data , Then turn the object into a string
// Then write the string to the file again
var student = req.body;
new Student(student).save(function (err) {
if (err) {
return res.status(500).send('Server error.');
}
res.redirect('/students');
})
})
router.get('/students/edit', function (req, res) {
// Handle connection problems in the list of clients ( Need to have id Parameters )
// Get the students to edit
// Render edit page "1. according to id Find out the student information , Then the template engine renders the page
// console.log(req.query.id); Can get id
// Turn the obtained string into Wie Without quotation marks id data
// Regular expression patterns
Student.findById(req.query.id.replace(/"/g, ''), function (err, student) {
if (err) {
return res.status(500).send('Server error.');
}
// see ID Student :console.log(student);
res.render('edit.html', {
student: student
})
})
})
router.post('/students/edit', function (req, res) {
// Get form data
// to update
// Struend.updataId()
// console.log(req.body);
var id = req.body.id.replace(/"/g, '')
Student.findByIdAndUpdate(id, req.body, function (err) {
if (err) {
return res.status(500).send('Server error.');
}
})
res.redirect('/students')
})
router.get('/students/delete', function (req, res) {
// 1. Get the id
// 2、 according to id Delete
// 3. Send the response data according to the operation result
// console.log(req.query.id);
var id = req.query.id.replace(/"/g, '')
Student.findByIdAndRemove(Aid, function (err) {
if (err) {
return res.status(500).send('Server error.');
}
res.redirect('/students')
})
})
// hold router export
module.exports = router;
边栏推荐
- Gym welcomes the first complete environmental document, which makes it easier to get started with intensive learning!
- Network security Kali penetration learning how to get started with web penetration how to scan based on nmap
- Research Report on the overall scale, major manufacturers, major regions, products and application segmentation of rotary tablet presses in the global market in 2022
- Phpstudy set LAN access
- Global and Chinese market of speed limiter 2022-2028: Research Report on technology, participants, trends, market size and share
- Golang type assertion and conversion (and strconv package)
- How to check the permission to write to a directory or file- How do you check for permissions to write to a directory or file?
- Qtablewidget control of QT
- Part 28 supplement (XXVIII) busyindicator (waiting for elements)
- 44. Concurrent programming theory
猜你喜欢

Based on laravel 5.5\5.6\5 X solution to the failure of installing laravel ide helper

The 29th day of force deduction (DP topic)

JMeter connection database

Point cloud data denoising

Node MySQL serialize cannot rollback transactions

Teach you how to quickly recover data by deleting recycle bin files by mistake

FAQs for datawhale learning!

Wechat applet quick start (including NPM package use and mobx status management)

Preliminary practice of niuke.com (11)

thrift go
随机推荐
Use of aggregate functions
2.4 conversion of different data types
Make a simple text logo with DW
How to handle wechat circle of friends marketing activities and share production and release skills
First knowledge of database
Q&A:Transformer, Bert, ELMO, GPT, VIT
Thread, thread stack, method stack, the difference of creating thread
Cap and base theory
Test access criteria
Explore the internal mechanism of modern browsers (I) (original translation)
Implementation of stack
Global and Chinese markets of cast iron diaphragm valves 2022-2028: Research Report on technology, participants, trends, market size and share
Part 27 supplement (27) buttons of QML basic elements
Commands related to files and directories
QT tutorial: signal and slot mechanism
Global and Chinese market of high purity copper foil 2022-2028: Research Report on technology, participants, trends, market size and share
AI enhanced safety monitoring project [with detailed code]
2.6 formula calculation
In 2021, the global foam protection packaging revenue was about $5286.7 million, and it is expected to reach $6615 million in 2028
JMeter connection database