如何解决如何使用先前从文件创建的数据库的现有数组更新node.js中数据的新条目?
我对Node.js和mongo完全陌生,所以我想这是一个幼稚的问题。
- 我已经有一个名为
students.js
的文件,其中包含三项学生数据。
var students = [
{
id: 1,name: 'Sean Gray',age: 24,},{
id: 2,name: 'John Doe',age: 26,{
id: 3,name: 'Janet Jackson',age: 23,];
module.exports = students;
- 我有一个带有后路由的路由文件'index.js'和一个名为
sc.postStudent()
的函数。
const express = require('express');
const router = express.Router();
const StudentController = require('../controllers/studentController');
var sc = new StudentController();
router.get('/',(req,res) => {
sc.getAllStudents(req,res);
});
router.get('/:id',res) => {
sc.getSingleStudent(req,res);
});
router.post('/poststudent',res) => {
sc.postStudent(req,res);
});
module.exports = router;
- 我有一个名为'studentController.js'的控制器文件,其中包含
class StudentController
和到getAllStudents()
,getSingleStudent()
和postStudent()
的路由以调用路由。
'use strict';
var students = require('../dummy/students');
const stude = require('../schema/schema');
class StudentController {
//Get all students
getAllStudents(req,res) {
return res.status(200).json({
students,message: 'All the students',});
}
//Get a single student
getSingleStudent(req,res) {
const findStudent = students.find(
(student) => student.id === parseInt(req.params.id,10)
);
if (findStudent) {
return res.status(200).json({
student: findStudent,message: 'A single student record',});
}
return res.status(404).json({
message: 'Student record not found',});
}
//To post a student entry
postStudent(req,res) {
let stud = new stude({
id: req.body.id,name: req.body.name,age: req.body.age,});
stud
.save()
.then((data) => {
return res.send(data).json({
students,message: 'Student record posted successfully',});
})
.catch((err) => {
console.log('error in posting',err);
res.sendStatus(404);
});
}
}
module.exports = StudentController;
- 这是主
server.js
文件,已连接到数据库并监听端口和其他配置信息。
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const port = 5003;
var db = require('mongoose');
var router = require('./routes/index');
//COnnecting to MongoDB
db
.connect('mongodb://localhost:27017/testDB1',{ useNewUrlParser: true })
.then(() => {
console.log('Connected to Database');
})
.catch((err) => {
console.log('Not Connected to Database ERROR! ',err);
});
//Instantiate express
const app = express();
//Configure app to user bodyParser
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//Register our routes in app
app.use('/',router);
//Start our server
app.listen(port,() => console.log(`app listening on port ${port}!`));
module.exports = app;
当我用getAllStudents()
击中时,可以从getSingleStudent()
的'students.js'文件中获取POSTMAN API
和GET
。
我还可以发布新数据,如下所示:
{
"_id": "5f5b85def279d03e34660abe","id": 4,"name": "Brian Adams","age": 22,"__v": 0
}
我无法将新添加的数据合并到students.js
数据库中。我想知道如何做到这一点。代码或数据库连接中是否有任何错误?在这里我看不到我在做什么错。
因此,如果我下次点击getAllStudents()
,则应该在POSTMAN
和students.js
文件中看到最新的条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。