问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

EXCEL中MON公式的应用问题?

发布网友 发布时间:2022-04-09 22:48

我来回答

3个回答

懂视网 时间:2022-04-10 03:10

控制器的基本构成与如何通过路由调用

 

控制器中通过建立函数并导出,实现前端对数据库的查询、新建、删除与修改的需求,并使之可以在路由中调用,完成API的封装。本文着重于结构之间的关系,具体问题解决方法将在后文给出。

 

下面代码就是一个简单但完整的控制器文件,命名为comment_controller.js, 存放在~/controllers文件夹下:

 

var config = require(‘../config‘),
  Comment = require(‘../models/comment‘);
 
//根据doctorId查询相关评价 2017-03-30 GY
exports.getCommentsByDoc = function(req, res) {
  //查询条件
  var doctorObject = req.body.doctorObject;
  var query = {doctorId:doctorObject._id};

  //设置参数
  var opts = ‘‘;
  var fields = {‘_id‘:0, ‘revisionInfo‘:0};
  var populate = {path: ‘patientId‘, select:{‘_id‘:0, ‘revisionInfo‘:0}};
 
  Comment.getSome(query, function(err, item) {
   if (err) {
   return res.status(500).send(err.errmsg);
  }
  res.json({results: item});
  }, opts, fields, populate);
}

  

首先声明一些用到的常量,包括全局设置和需要调用的数据模型等。 

然后将方法建立函数并导出,注意建立函数的时候,传入参数为req, res. 其中req为输入参数,使用GET方法(或一些POST方法)时,在URL中的参数通过req.query传入,在POST等方法,在body中的参数通过req.body传入。res为返回参数,一般有两种方式返回:

状态码加信息:(return res.status(500).send(err.errmsg))

或者json格式:(return res.json(result:’error!’))

如果希望导出的函数可以复用到不同路由中组合,也就是使用一个路由调用多个函数,就要允许前面的导出函数可以进行下一步,这就需要在传入的参数中多加一个next, 并在函数中允许进行下一步的位置使用next()函数。

 

仍以这个函数为例,如何在路由中调用呢?

在第1篇中提过的~/routes/routes.js文件:

// self-defined configurations
var config = require(‘../config’);
 
// middlewares
//声明中间件集合
 
// controllers
//声明控制器集合
var doctorCtrl = require(‘../controllers/doctor_controller’);
 
//添加comment_controller.js中声明的函数
var commentCtrl = require(‘../controllers/comment_controller’);
 
module.exports = function(app, webEntry) {
app.get(‘/’, function(req.res) {
 res.send(‘Server Root’);
});
 
//设置路由路径及路径需要调用的函数或组合
app.post(‘/doctor/postDocBasic’, doctorCtrl.insertDocBasic);
app.get(‘/doctor/getDoctorInfo’, doctorCtrl.getDoctorObject, doctorCtrl.getComments, doctorCtrl.getDoctorInfo);
//…
 
//设置方法路由及需要调用的函数
app.get(‘/comment/getComments’, doctorCtrl.getDoctorObject, commentCtrl.getCommentByDoc);
 
};

  


为了便于理解,附上关于doctorCtrl.getDoctorObject的代码: 

 

// doctor_controller.js
var config = require(‘../config’);
var Doctor = require(‘../models/doctor’);
//通过doctor表中userId查询_id 2017-03-30 GY
//修改:增加判断不存在ID情况 2017-04-05 GY
exports.getDoctorObject = function (req, res, next) {
  if (req.query.userId == null || req.query.userId == ‘‘) {
   return res.json({result:‘请填写userId!‘});
  }
 var query = {
 userId: req.query.userId
 };
 Doctor.getOne(query, function (err, doctor) {
 if (err) {
  console.log(err);
  return res.status(500).send(‘服务器错误, 用户查询失败!‘);
 }
 if (doctor == null) {
   return res.json({result:‘不存在的医生ID!‘});
 }
 req.body.doctorObject = doctor;
 next();
 });
};

  


这段代码的目的是输入doctor表里的userId查询到对应条目,并将信息传入到req.body.doctorObject中。可以猜想,这段代码是可以复用的。当然这段代码复用的情况会比较局限,因为比较粗糙,关于这一点,后文将给出更为全面的复用代码。

 

在工程文件夹中运行命令行,运行命令:

node server.js

如果没有错误,会有以下提示:

 技术分享

 

提示内容在server.js中定义。

 

为了测试API是否可用,推荐使用postman应用(google store下载)。在请求框中输入URL:

localhost:4050/comment/getComments

 技术分享

 

点击Params输入键与值,则请求变为:

localhost:4050/comment/getComments?userId=doc01

 技术分享

 

点击Send即可发送请求等待返回,如果一切顺利,会有类似返回:

 技术分享

 

如果是POST等方法,需要在body中输入的,选择下面的body, raw, 并将后面的格式改为JSON:

 技术分享

 

注意端口4050是在setting.js中定义的,请参考本系列第1篇文章。

如果测试本地的工程,可以直接使用localhost, 如果测试部署在其他电脑或服务器上的工程,将localhost换成对应电脑或服务器的IP地址即可。

 

应用Mongoose开发MongoDB(3)控制器(controllers)

标签:封装   get   理解   方法   用户   one   nod   信息   path   

热心网友 时间:2022-04-10 00:18

首先excel里没有mon这个函数
楼上说法也有点错误
应该说所有整数除以1余数都为0
如果被除的不是整数那么结果是小数点后面的数字
实际应用中mod(a1,1)一般用来取小数点后面的数字

热心网友 时间:2022-04-10 01:36

原来是MON啊,没看清,这个函数太高级,不懂。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
草青青,青青草,草上接谢珍珠宝,怕日晒怕风摇,摇看珍珠得起早 谜底是... 一加9R要不要升级ColorOS 13正式版 一加9pro怎么coloros12一加9pro升级coloros12的方法 coloros12支持哪些一加机型?coloros12支持一加机型介绍 一加9pro如何coloros12?一加9pro升级coloros12的方法 一加9pro升级coloros12拍照改善吗 我是一个高中生,职教的,我们班上有5个女生,我喜欢有一个,但追她又有... 自动挡d挡旁边的 -是什么意思? 自动挡位上的加减是什么意思? 宣传这个职位是干什么的 谁有吉步明泽电影,求好心人发给我 求够邦纳T30U系列超声波液位计中文说明书,liukekun@sina.com,谢谢 海尔电视LE46T30怎么连接路由器 吉他T30调音器 我的IBM T30 VGA接口电视也是VGA接口,为什么就不行呢。 创维29T83AA被遥控器3T30(不是原配)锁住按电视面板和遥控器均没反应,请问怎么解锁原配遥控器是什么型号 笔记本IBM T30网络控制器和网络适配器有什么区别?哪个是无线网卡驱动??? ibmt30每次按下FN和F3键会不断的黑屏 出口贸易跨境收款用什么好? BBT型号T30怎么重启 三户联保贷款必须是户主吗? 请问三户联保贷款需负什么责任 ,会判刑吗? IBM ThinkPad T30 使用说明书 爱国者蓝牙耳机t30和t16对比 三户联保贷款是不是三户都要是户主? 运动蓝牙耳机? 邮政储蓄三户联保贷款,两方跑了,我要还钱吗 智器t30蓝牙怎么连接,求大神指导,本人电脑白痴。 在银行贷款,有关三户联保是什么情况,麻烦解释明白一点,谢谢 三家联保贷款 吉明泽步代码有几部?有20分 《九州飘渺录》完整下载,谢谢 蜗行年步太夸张,四四定出数。狗兄猪弟并相连,龙起三丈高。三言四语数一数,三三柳桃红。尥虎斟酌为上吉 成吉思汗txt全集下载 老师劳请您看下乾乙卯,癸未,壬午,甲辰。是水木从儿格吗,戊寅,丁丑,丙子运哪步稍吉,谢谢。 谁有 (吉择眀步)种子全集 帮帮忙 请发到邮箱 13699721970@163.com 成吉思汗百度版的 歌曲到哪下载啊? 韩剧《快刀洪童吉》歌曲《缘》朴焕奎的下载 我给儿子取名叫魏明泽,请专家评一评好不好 (傅仑明泽)这个名字好不好请测试下凶吉 戴尔r720服务器的主板支持什么样的cpu? dell r720的4核服务器能更换成多大 戴尔r720能部署华为云计算吗 一堆DellR720服务器在空闲的地方放着,近几天用的时候看了一下,被老鼠钻了,怎么清理主板上的老鼠屎尿 Dell r720 更换主板后远程控制卡IP需要重新配置吗? dell r720服务器不组raid可以装系统吗 DELL服务器R720开机显示Strike the F1 key to continue, F2 to run the system setup program 烤箱版琥珀核桃的做法步骤图,怎么做好吃 我vivo手机换成华为的,之后再上之后vivo的账号的决战平安京游戏角色丢失了 黄油琥珀核桃烤箱怎么做好吃