Nodejs,三层架构

基于express实现三层架构开发。下图为学生管理系统开发

。一般为相应的HTML发送Ajax请求。即为从sms.html 发送Ajax请求给students.js

一:划分为1:表示层,主要为接受用户发送的请求,以及数据的返回,为客户端提供应用程序的访问.2:业务逻辑层:主要负责对数据的操作,也就是把一些数据层的操作进行组合。3:数据访问层。主要时对数据进行操作

二:基于express建立的三层结构,一般目录如下。,public(静态页面html书写处),routes(里面的stuendts.js接受静态页面的请求,及返回数据),service(里面的stuendtsService.js 对routes里面的stuendts.js传来的数据进行操作,并返回结果),dao(数据层)

注:dao层,作为数据处理层,一般也分为三部分,参见最后一图

dao层,作为数据处理层,一般也分为三部分。①(db.js),直接和数据库相连。②在dao文件夹里面建立子文件见models,在其下面建立数据库的骨架,并根据骨架创立模型。(studentsModel.js)③(studentsDao.js),直接对数据进行操作的界面,接收service文件夹下studentsService.js 传来的数据,根据传来的数据,对数据库里面的数据进行增删查改的操作,并返回结果给service文件夹。

三详细流程和实现代码。

1:public下的静态页面

扫描二维码关注公众号,回复: 8354906 查看本文章

//发送Ajax

Ajax({

    url:"./students/getStudents",

    data:,

   success(){

}

})

2:routes文件夹下的students.js//接收页面发来的信息,并反馈

//引文件

var express = require('express');
var router = express.Router();
const studentsService = require("../service/studentsService");
//具体操作如下操作
 
router.get('/getStudents', async function (req, res, next) {
  const pager = req.query;
  const data = await studentsService.getStudents(pager);
  res.send(data);
});
 
module.exports= router;
3:service文件夹下的studentsService.js//
 
const studentsDao = require("../dao/studentsDao"); //引入
const getStudents = async (pager) => {
    let data = await studentsDao.getStudents(pager)
    return data
}
module.exports = {  getStudents }//暴露

4: studentsDao.js//对数据库的数据进行操作

const mongoose = require("mongoose");//引入mongoose
const studentsModel = mongoose.model("students");
 
const getStudent = async ( )=>{
    const data = await studentsModel.find();
    return data;
}
 
module.exports = {  getStudents }//暴露
 
 

5:db.js//连接数据库

const mongoose = require("mongoose");//引入mongoose
mongoose.connect("mongodb://localhost/xxxxx",{useNewUrlParser:true,useUnifiedTopology:true});
mongoose.connection.on("connected",function(){
    console.log("mongoose已经成功链接上了xxxxx");
})
 
 
require("./models/studentsModel")//引入文件studentsModel.js
 
 
6:studentsModel.js//创建数据模板
const mongoose = require("mongoose");//引入mongoose
const studentsSchema = new mongoose.Schema({//创建骨架
  name: String,
  age:Number,
  gender:String,
  grade:Number,
  addr:String,
  phone:String,
}, {versionKey: false});
const studentsModel = mongoose.model('students', studentsSchema,"students");//根据骨架创建模版
 

猜你喜欢

转载自www.cnblogs.com/yt0817/p/12115864.html