当前位置:网站首页>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;
边栏推荐
- How to read the source code [debug and observe the source code]
- Wargames study notes -- Leviathan
- Research Report on the overall scale, major manufacturers, major regions, products and application segmentation of rotary tablet presses in the global market in 2022
- [Yu Yue education] basic reference materials of manufacturing technology of Shanghai Jiaotong University
- Global and Chinese markets for medical temperature sensors 2022-2028: Research Report on technology, participants, trends, market size and share
- How to improve data security by renting servers in Hong Kong
- What is the difference between a kill process and a close process- What are the differences between kill process and close process?
- AST (Abstract Syntax Tree)
- LabVIEW training
- FAQs for datawhale learning!
猜你喜欢

Shortest path problem of graph theory (acwing template)

AcWing 1460. Where am i?

Nerfplusplus parameter format sorting

Preliminary practice of niuke.com (11)

The global industrial design revenue in 2021 was about $44360 million, and it is expected to reach $62720 million in 2028. From 2022 to 2028, the CAGR was 5.5%

Q&A:Transformer, Bert, ELMO, GPT, VIT

Change deepin to Alibaba image source

FAQs for datawhale learning!

2.7 format output of values

Basic knowledge of dictionaries and collections
随机推荐
Recommendation of books related to strong foundation program mathematics
Plan for the first half of 2022 -- pass the PMP Exam
The 15 year old interviewer will teach you four unique skills that you must pass the interview
App compliance
Micro service knowledge sorting - cache technology
Derivation of decision tree theory
2. Template syntax
Change deepin to Alibaba image source
Exercises of function recursion
In 2021, the global revenue of thick film resistors was about $1537.3 million, and it is expected to reach $2118.7 million in 2028
你真的知道自己多大了吗?
Task of gradle learning
Part 27 supplement (27) buttons of QML basic elements
IP address is such an important knowledge that it's useless to listen to a younger student?
2022 Xinjiang latest road transportation safety officer simulation examination questions and answers
Point cloud data denoising
AcWing 1460. Where am i?
4. Data splitting of Flink real-time project
Viewing Chinese science and technology from the Winter Olympics (II): when snowmaking breakthrough is in progress
2.4 conversion of different data types