当前位置:网站首页>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;
边栏推荐
- Exercises of function recursion
- Producer consumer mode (multithreading, use of shared resources)
- Nerfplusplus parameter format sorting
- Make a simple text logo with DW
- 2166. Design bit set
- Recommendation of books related to strong foundation program mathematics
- Use of CMD command
- Battle drag method 1: moderately optimistic, build self-confidence (1)
- Cap and base theory
- JMeter plug-in installation
猜你喜欢
IP address is such an important knowledge that it's useless to listen to a younger student?
Based on laravel 5.5\5.6\5 X solution to the failure of installing laravel ide helper
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%
Node MySQL serialize cannot rollback transactions
The 15 year old interviewer will teach you four unique skills that you must pass the interview
Make a simple text logo with DW
Professional interpretation | how to become an SQL developer
1.5 learn to find mistakes first
Sparse matrix (triple) creation, transpose, traversal, addition, subtraction, multiplication. C implementation
LabVIEW training
随机推荐
It is discussed that the success of Vit lies not in attention. Shiftvit uses the precision of swing transformer to outperform the speed of RESNET
1.4 learn more about functions
Qtablewidget control of QT
Parental delegation mechanism
How to improve data security by renting servers in Hong Kong
Cap and base theory
Rd file name conflict when extending a S4 method of some other package
February 14-20, 2022 (osgear source code debugging +ue4 video +ogremain source code transcription)
Sword finger offer 30 Stack containing min function
Phpexcel import export
2022 Xinjiang latest road transportation safety officer simulation examination questions and answers
Deep search DFS + wide search BFS + traversal of trees and graphs + topological sequence (template article acwing)
5. MVVM model
Exercises of function recursion
[Yu Yue education] basic reference materials of manufacturing technology of Shanghai Jiaotong University
About unregistered transfer login page
How to handle wechat circle of friends marketing activities and share production and release skills
Oak-d raspberry pie cloud project [with detailed code]
【c】 Digital bomb
Part 28 supplement (XXVIII) busyindicator (waiting for elements)