本来想学阿里云小程序开发的,免费服务器申请好了后,界面让提交node.js包,于是在b站搜了下node.js,开启了大约为期2周的学习。
由于在专心考研,node的学习只是作为调节学习的娱乐活动,每天只学习0.5-1小时,所以学的很慢。。从前端0基础到做出一个生产管理系统,还是有点小成就感的。。
跟着老师学的,老师分了5天,我跟着敲代码,1.5倍速跳播看完了。我的这5部分别为:
首先在控制台输入mongod开启数据库服务,再输入node app.js开启web服务器,首页如下:
// students.js
// 数据操作文件模块
// 职责:操作数据库中的数据,不关心业务
var fs = require('fs')
var mongoose = require('mongoose');
//1.连接你的数据库
mongoose.connect('mongodb://localhost:27017/student3', {useNewUrlParser: true});
//2.设计文档结构
var Schema = mongoose.Schema;
var studentSchema = new Schema({
myid:{
type: Number,
required: true
},
name:{
type: String,
required: true
},
gender: {
type: String,
required: true
},
age:{
type: Number,
required: true
},
hobbies:{
type: String,
required: true
}
});
// 3.将文档结构发布为模型,
// 第一个参数传入大写名词单数字符串表示数据库名称,系统改成users;第二个参数传入架构
var Student = mongoose.model('Student',studentSchema)
// 获取所有学生列表
// return []
exports.find = function(callback){//回调函数作为导出的参数
Student.find(function(err,ret){
if(err){
return callback(err)
}else{
callback(null,ret)//第一个参数要么是error 要么是空
}
})
}
// 添加新学生信息 下面的异步回调才是node的奥义,这叫异步编程
exports.save = function(student,callback){//传一对象和回调函数
Student.find(function(err,ret){
if(err){
return callback(err)
}else{
var admin = new Student({
myid:ret[ret.length - 1].myid + 1,
name:student.name,
gender:student.gender,
age:student.age,
hobbies:student.hobbies
})
admin.save(function(err,ret){
if(err){
callback(err,ret)//第一个参数要么是error 要么是空
}else{
callback(null,ret)//第一个参数要么是error 要么是空
}
})
}
})
}
//根据id查找学生信息 返回的是某个学生全部信息
exports.findById = function(id,callback){
Student.findOne({
myid: id
},{
useFindAndModify:false
}
,function(err,ret){
if(err){
return callback(err)
}else{
callback(null,ret)//第一个参数要么是error 要么是空
}
})
}
// 更新学生
exports.updateById = function(student,callback){
Student.findOneAndUpdate({
myid: parseInt(student.myid)
},
{
name:student.name,
gender:student.gender,
age:student.age,
hobbies:student.hobbies
},{
useFindAndModify:false
},
function(err,ret){
if(err){
return callback(err)
}else{
callback(null,ret)//第一个参数要么是error 要么是空
}
})
}
// 删除学生
exports.deleteById = function(id,callback){
Student.findOneAndRemove({
myid: id
},
{
useFindAndModify:false
},
function(err,ret){
if(err){
return callback(err)
}else{
callback(null,ret)//第一个参数要么是error 要么是空
}
})
}
由于时间关系,学node.js有点走马观花,做出了一个demo就没学了,仅仅是做了增删改查。但是学会了mongodb数据库的操作、路由设计、html表单、express、npm等一些东西,明白了很多函数不记得是可以去官网查api的,感觉js其实是很有意思的。回调函数也有一点理解,但是没看promise。下一步学习vue.js。