字数太多,我腰斩一下...

因为是API后台,

没有V只剩MC, 我们先看看Controller吧.也是简单的处理代码.

由require看出,我们需要在JsModule下再建一个文件夹Controll,再在里面新建GuestControll.js

var

Guest=require("../Model/Guest.js");

function

GuestControll(app,Mysql)

{

var

GuestModel=Object.create(Guest.GuestModel);

app.get('/guest/gettodayguest', GetTodayGuests);

//查询今天客人

app.get('/guest/getroombooking',

GetRoomBooking); //查询房间预订信息

app.get('/guest/getguestinfobyid',

GetGuestInfoById); //根据客人id获取信息

app.post('/guest/bookroom', NewGuest);

//预订客房

app.post('/guest/checkin', Checkin);

//入住客房

app.post('/guest/checkout', Checkout);

//退房

app.post('/guest/cancelbooking', CancelBooking);

//取消预订

app.post('/guest/overstay', OverStay);

//续住

function

GetTodayGuests(req, res, next) {

console.log("GetTodayGuests

query:"+JSON.stringify(req.query));

var

Today=req.params.today;

GuestModel.GetTodayGuests(Mysql,Today,function(Data){

res.charSet('utf-8');

res.send(Data);

});

}

function

NewGuest(req, res, next){

res.send('0');

}

function

Checkin(req, res, next) {

console.log("Checkin

param:"+JSON.stringify(req.params));

var

RoomId=req.params.roomid;

GuestModel.Checkin(Mysql,RoomId,function(Rst){

res.charSet('utf-8');

var

SR={iRst:Rst};

res.send(SR);

});

}

function

Checkout(req, res, next) {

console.log("Checkout

param:"+JSON.stringify(req.params));

var

RoomId=req.params.roomid;

GuestModel.Checkout(Mysql,RoomId,function(Rst){

res.charSet('utf-8');

var

SR={iRst:Rst};

res.send(SR);

});

}

function

CancelBooking(req, res, next) {

console.log("CancelBooking

param:"+JSON.stringify(req.params));

var

RoomId=req.params.roomid;

var

GuestStr=req.params.guestStr;

var

GuestArr=eval_r(GuestStr);

console.log(GuestArr);

GuestModel.CancelBooking(Mysql,RoomId,GuestArr,function(Rst){

res.charSet('utf-8');

var

SR={iRst:Rst};

res.send(SR);

});

}

function

OverStay(req, res, next) {

console.log("OverStay

param:"+JSON.stringify(req.params));

var

RoomId=req.params.roomid;

var

StayTime=req.params.staytime;

GuestModel.OverStay(Mysql,RoomId,StayTime,function(Rst){

res.charSet('utf-8');

var

SR={iRst:Rst};

res.send(SR);

});

}

function

GetRoomBooking(req, res, next)

{

console.log("GetRoomBooking

query:"+JSON.stringify(req.query));

var

RoomId=req.params.roomid;

var

NowTime=req.params.thistime;

GuestModel.GetRoomBooking(Mysql,RoomId,NowTime,function(Data){

res.charSet('utf-8');

res.send(Data);

});

}

function

GetGuestInfoById(req, res, next)

{

console.log("GetGuestInfoById

query:"+JSON.stringify(req.query));

var

UserId=req.params.uid;

GuestModel.GetGuestInfoById(Mysql,UserId,function(Data){

res.charSet('utf-8');

res.send(Data);

});

}

}

exports.GuestControll=GuestControll;

Controller都是中转控制啦, 业务逻辑都在Module层里,

第一句就告诉我们又要再建一个Module文件夹和Guest.js 的Module.

唯一让我觉得不够爽的地方是注册各个请求的接收参数名, 这个必须由后台私下和前端事先约定, 在nodejs上无法自描述...

var

JsOper=require("../Tool/JsOper.js");

var

DataTable=require("../Tool/CDataTableName.js");

var

GuestModel={

GetTodayGuests:function(MySql,aUTCDate,aResponse)

{

var QueryCmd=['SELECT

t1.ROOM_ID,t1.GASTNR,t1.GASTNAME,t2.SEX,t2.VIP,t1.ANREISE,t1.ABREISE,t1.CHECK_FLAG

'];

QueryCmd.push(' FROM

',DataTable.TableGuestCheckIn,' t1,

',DataTable.TableGuestInfo,' t2 ' );

QueryCmd.push(' WHERE

t1.GASTNR=t2.NUMMER  AND ((t1.ANREISE

restify mysql_[菜鸟试水]关于Nodejs搭建后台API服务(Mysql-Restify)[下]相关推荐

  1. Nodejs搭建前后端分离开发模式下的微信网页项目

    原文链接:<Nodejs搭建前后端分离开发模式下的微信网页项目>- 陈帅华 本文涉及对前后端分离及微信网页项目中的前端如何在本地环境中开发与调试的思考. 主要问题 1.如何配置微信公众平台 ...

  2. 手把手,教你用nodejs搭建后台最小系统(大量图文)系列二

    前段时间利用nodejs封装了一个最小系统,也终于是把很久之前的愿望给实现了,在这里把如何实现分享出来. 本系列文章有两篇,上一篇详见下面传送门: 传送门:<手摸手,教你用nodejs搭建后台最 ...

  3. 使用CodeIgniter框架搭建RESTful API服务

    RESTful不仅仅是一套协议标准更是一种设计思路. 在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念 ...

  4. .NET 6 实现滑动验证码(九)、搭建验证码API服务端

    上一篇介绍了实现验证码生成的方法跟验证方法.本篇文章介绍如何在项目中使用. 目录 项目配置 项目配置 在实际应用中,我们可以添加打包好的.nupkg文件,也可以使用添加现有项目的方式,把源码添加到现有 ...

  5. ginapi服务器性能,基于gin web框架搭建RESTful API服务

    这篇主要学习go项目中的项目结构.项目规范等知识,ROM采用的database/sql的写法. 1.技术框架 利用的是ginweb框架,然后ROM层选用database/sql,安装mysql驱动.安 ...

  6. 60秒Dapp快讯 | 全球公有链技术评估:以太坊在应用性上排第一;蚂蚁金服区块链试水医疗电子票据

    本文由微信公众号DappVision原创首发,转载请联系授权 [赛迪全球公有链技术评估:以太坊在应用性上排第一] 今日,在区块链赋能实体经济推动计划-"链锁反应IV"发布会上,赛迪 ...

  7. 使用nodejs和express搭建http web服务

    文章目录 简介 使用nodejs搭建HTTP web服务 请求nodejs服务 第三方lib请求post 获取http请求的正文 Express和使用express搭建http web服务 expre ...

  8. Go实战--golang中使用echo框架、MongoDB、JWT搭建REST API(labstack/echo、gopkg.in/mgo.v2、dgrijalva/jwt-go)

    生命不止,继续go go go !!! 之前介绍过golang中restful api的博客,是使用redis作为持久化,httprouter作为框架: Go实战–通过httprouter和redis ...

  9. 网校系统搭建服务有哪些优势?为什么要试水网校系统开发?

    因为新冠肺炎的影响,教育领域迎来了新的教学方式,那就是在线教育.其实在线教育这种形式早在前几年就已经兴盛了起来,只不过今年才正式面向九年义务教育,让各大高校看到这种线上教育的可行性.网校系统搭建服务有 ...

最新文章

  1. 渗透知识-XSS跨站脚本攻击
  2. 【kafka】 windows平台搭建及使用
  3. linux那些事之LRU(1)
  4. Silverlight for Windows Phone 开发学习笔记(-)
  5. mysql_fdw在windows_Citus是否支持使用mysql_fdw创建分片?
  6. 背包问题1:【SSL】1059.01背包问题——2021-03-10更
  7. c 语言车牌识别系统课题设计,基于图像的车牌识别系统的设计和实现
  8. Sobel边缘检测 - 梯度算子介绍
  9. 透视投影的原理和实现
  10. 鹰信 UC 登录状态同步方法
  11. 邮件监控云上脚本执行进度
  12. mac 更新系统时间
  13. 华为P50Pro怎么解锁huawei P50屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤
  14. mac 锤子android助手,苹果电脑连安卓就靠它了 锤子Smartisan点评
  15. 阿里云域名证书免费认证教程
  16. PL/SQL破解方法(不需要注册码)
  17. 数据、数据项、数据结构
  18. 浅谈Attention注意力机制及其实现
  19. JavaScript设计模式总汇
  20. BYOD 2.0的安全管理:MAM

热门文章

  1. java calendar_Java Calendar getLeastMaximum()方法与示例
  2. stl向量_如何检查C ++ STL中向量中是否存在元素?
  3. android分开两个线程做事,android开发教程之handle实现多线程和异步处理
  4. python php 网站_python php网站
  5. t580 thinkpad_聊聊ThinkPad T580:除了大屏,还有什么
  6. bba70_BBA的完整形式是什么?
  7. ruby 新建对象_Ruby中的面向对象编程
  8. Java ObjectInputStream readFloat()方法与示例
  9. 生成文件的另一种思路——共享文件同步
  10. python高级属性 用法 编程_python高级编程之面向对象高级编程