ajax 学生信息管理系统,StuInfoSystem

#StuInfoSystem

##系统简介

前端使用HTML+CSS+JS实现,服务器端使用Node.js+MongoDB数据库 (采用express4.x框架)

服务器端利用express-restify-mongoose 模块自动生成对应数据库相应表的restful API,由前端发起Ajax请求调用

##启动方法

首先通过git clone 下载本程序 用命令行在根目录下执行:

npm install

安装完依赖包后 执行:

node ./bin/www

开始运行本程序

##使用方法

前端通过发送Ajax请求进行对数据库的增删修查操作。具体操作方法可以查看express-restify-mongoose的详细文档。这里列举几个常用场景:

比如当前数据库有一个名为absenteeism的缺勤表。我们通过浏览器访问http://localhost:6060/api/v1/absenteeism 即可看到当前表中存储的信息(JSON格式)。其实这就是一个GET请求操作。

假设我要根据MongoDB的_id字段顺序查找absenteeism的所有人员信息,可以发起如下Ajax请求:

$.ajax({

url:'http://localhost:6060/api/v1/absenteeism?sort=_id',

type:'GET',

success:function(data){

console.log(data)

}

});

此时返回的data就是所有人员信息的js数组,现在可以对这些数据进行自由发挥了,比如通过遍历的方式将其append到html页面上。

又假设我要往数据库里新建一条信息,此时要用到POST方法,并把需要新建的信息组成一个js对象 比如:

var postData = {

semester:$("#semester").val(),

week:$("#week").val(),

recordDate:$("#recordDate").val(),

stuNumber:$("#stuNumber").val(),

stuName:$("#stuName").val(),

stuClass:$("#stuClass").val(),

classType:$("#classType").val(),

date:$("#date").val(),

lesson:$("#lesson").val(),

teacher:$("#teacher").val(),

classroom:$("#classroom").val(),

lessonTime:$("#lessonTime").val(),

remark:$("#remark").val()

}

然后在发Ajax请求的方法中,将其转为JSON数据发出去:

$.ajax({

url:'http://localhost:6060/api/v1/absenteeism',

type:'POST',

contentType:'application/json',

data:JSON.stringify(postData),

success:function(data){

console.log("添加成功");

console.log(data);

}

})

此时返回的data则是你刚刚插入的那条信息,通常是一个object类型的数据。

此外,我们还可以通过PUT方法进行对数据的修改,DELETE方法进行对数据的删除。

如果在查询过程中要增加一些查询条件,可以在地址后加上query关键字进行查询,如官方文档所写:

GET /Customer?query={"name":"Bob"}

GET /Customer?query={"name":{"$regex":"^(Bob)"}}

GET /Customer?query={"name":"~^(Bob)"}

GET /Customer?query={"age":{"$gt":12}}

GET /Customer?query={"age":">12"}

GET /Customer?query={"age":{"$gte":12}}

GET /Customer?query={"age":">=12"}

GET /Customer?query={"age":{"$lt":12}}

GET /Customer?query={"age":"<12"}

GET /Customer?query={"age":{"$lte":12}}

GET /Customer?query={"age":"<=12"}

GET /Customer?query={"age":{"$ne":12}}

GET /Customer?query={"age":"!=12"}

如果要按分页进行查询 则需要用到limit和skip关键字了:

GET /Customer?skip=10&limit=10

……

##建表方法

如果想要自己在数据库中新建表,需要自己编写schema和对应model。具体写法可参考目录下的schemas和models文件夹下的文件

所谓schema 指的是表的结构,即声明有哪些字段,它是什么类型之类的信息。然后通过model将其实例化。

最后在app.js文件中 通过**restify.serve(router,modelName);**来产生表的API地址。例如:

app.js:

var express = require('express');

var restify = require('express-restify-mongoose');

var app = express();

var router = express.Router();

var absenteeismModel = require('./models/absenteeism');

restify.serve(router,absenteeismModel);

app.use(router);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值