当前位置:网站首页>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;
边栏推荐
- Micro service knowledge sorting - asynchronous communication technology
- thrift go
- MDM mass data synchronization test verification
- Test changes in Devops mode -- learning and thinking
- 6. Data agent object Defineproperty method
- Pytorch sets the weight and bias of the model to zero
- Plan for the first half of 2022 -- pass the PMP Exam
- 2.5 conversion of different data types (2)
- FPGA learning notes: vivado 2019.1 project creation
- Leetcode daily question solution: 540 A single element in an ordered array
猜你喜欢

AcWing 1460. Where am i?

Exercises of function recursion

1.4 learn more about functions

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

2.1 use of variables

String and+

How to improve data security by renting servers in Hong Kong

Popularize the basics of IP routing

Example of peanut shell inner net penetration

LabVIEW training
随机推荐
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
Commands related to files and directories
Make a simple text logo with DW
Camera calibration (I): robot hand eye calibration
jvm jni 及 pvm pybind11 大批量数据传输及优化
Typora charges, WTF? Still need support
Cap and base theory
Task of gradle learning
How to set the system volume programmatically- How to programmatically set the system volume?
Golang type assertion and conversion (and strconv package)
Print linked list from end to end
Based on laravel 5.5\5.6\5 X solution to the failure of installing laravel ide helper
FAQs for datawhale learning!
Global and Chinese markets of polyimide tubes for electronics 2022-2028: Research Report on technology, participants, trends, market size and share
Research Report on the overall scale, major manufacturers, major regions, products and application segmentation of rotary tablet presses in the global market in 2022
Upgrade PIP and install Libraries
IP address is such an important knowledge that it's useless to listen to a younger student?
Fingerprint password lock based on Hal Library
February 14-20, 2022 (osgear source code debugging +ue4 video +ogremain source code transcription)
JMeter connection database