Node.JS服务器搭建的完整流程(依赖express脚手架)

Node.JS服务器搭建的完整流程(依赖express脚手架)

1、进入工程文件夹,创建主服务器以及下载依赖

2、创建代理服务器以及下载依赖(下文讲到)

3、然后开始主服务器的创建

4、先拉出三层架构,Dao,service文件夹的创建 (工程化管理和维护代码更方便)

5、Dao里面创建db.js,以及xxDao.js,链接数据库

6、然后创建models文件夹,创建xxModels.js文件

7、安装mongoose模块,用来操作数据库

npm install -g express-generator  //搭建express脚手架
express --view=pug myapp  		  //创建一个项目名字叫做myapp
npm install  					  //安装第三方依赖包(可以简写为npm i)
npm start 			 			  //启动服务  (也可以进入bin目录启动www文件)
npm i mongoose					  //下载mongoose用来操作MongoDB数据库

8、然后开始链接数据库,第一步是编写db.js连接MongoDB数据库

const mongoose = require("mongoose");
//链接数据库中名为myData的文档对象
mongoose.connect("mongodb://localhost/Mydata", {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
//设置监听函数,数据库链接成功后做出对应/的打印
mongoose.connection.on("connected",function(){
    console.log("成功连上classmates数据库");
})
require("./models/clazzModel");

//dao/models/clazzModel.js
const mongoose = require("mongoose");
const clazzsSchema = new mongoose.Schema({
    teacherName: String,
    className:String,
    addr: String,
}, {
    versionKey: false
});
const clazzsModel = mongoose.model("clazzs", clazzsSchema, "clazzs");
module.exports = clazzsModel;

并且还需要在app.js中引入db.js

require("./Dao/db");

9、然后开始定义文档骨架,开始写xxModels.js里面的代码

const mongoose = require("mongoose");
const clazzSchema = mongoose.Schema({ //创建骨架,定义数据库文档结构
     name: String,
    age: Number,
},{
    versionKey:false
});
const clazzModel = mongoose.model("clazz",clazzSchema,"clazz");
module.exports = clazzModel;//最后导出clazzModel,因为Dao层代码需要使用来操作数据库

10、Dao层逻辑主要代码的编写

const mongoose = require("mongoose");
const clazzModel = mongoose.model("clazz");

const getClazz = async function (){
    return await clazzModel.find();//用clazzModel直接操作数据库,拿到数据库中的clazz集合中的数据;
}

module.exports = {getClazz};//最后导出getClazz方法供给service层的代码调用

11、service层代码的编写

const clazzDao = require("../Dao/clazzDao");

const getClazz = async function(){
    return await clazzDao.getClazz();
}
modue.exports = {getClazz};

下面是服务分三层架构之前的代码

var express = require('express');//前两步骤就是引入脚手架和路由,固定格式
var router = express.Router();

const mongoose = require("mongoose");//引入第三方mongoose模块
const teacherSchema = mongoose.Schema({//创建骨架约束数据库数据结构
  username: String,
  password: String
}, {
  versionKey: false
});
//然后引入model来操作数据库
const teacherModel = mongoose.model("teachers", teacherSchema, "teachers")
mongoose.connect("mongodb://localhost/myData",{//链接数据库中的myData
  useNewUrlParser: true,
  useUnifiedTopology: true
});
mongoose.connection.on("connected", function () {//设置监听,判断链接是否成功
  console.log("teachers 链接成功");
});
/* GET teachers listing. */
router.post('/login', async function (req, res, next) {
  const teacher = req.body;//登录系统,拿着用户输入的信息去数据库对比
  const data = await teacherModel.find(teacher);
  if (data.length){//如果匹配到的数据不为空,说明登陆成功
    res.send(true);
  }
 else{//匹配到的数据为空,说明数据库没有该用户,判定为登陆失败
   res.send(false);
 }
});
//下面是注册,只需判断该用户名是否已经存在
router.post('/regist', async function (req, res, next) {
  const teacher = req.body;
  const data = await teacherModel.find({username:teacher.username});
  if (data.length){//如果在数据库中找到了该用户名,则说明已经失败,注册不合法
    res.send(false);
  }
 else{//如果注册合法,则在数据库中创建该用户,返回注册成功
   await teacherModel.create(teacher);
   res.send(true);
 }
});

module.exports = router;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值