栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Express Node.JS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Express Node.JS

我想通了。我使用Q库代替了client.multi()。exec()来执行所有功能。这样可以干净地执行所有redis post命令,然后让我检索信息。

在routes.js文件中,我只有一小段代码。一切都在doctorDB.js文件中执行。

routes.js

app.post('/addDoctorInfo', ensureLoggedIn('/login'), function(req, res, next){        return doctorDB.addDoctor(req.body.id, req.body.doc, req, res, next);});

doctorDB.js

var addDoctor = function addDoctor(id, doc, req, res, next){    var fields = Object.keys(doc.fields);    function middleName(id, doc){        if (doc.middleName){ return client.hset(id, "middleName", doc.middleName); }        else { return; }    }    return Q.all([Q.ninvoke(client, 'sadd', 'Doctors', id),         Q.ninvoke(client, 'hmset', id, "lastName", doc.lastName, "firstName", doc.firstName, "email", doc.email, "university", doc.university, "work", doc.work),         Q.ninvoke(client, 'sadd', id + ':fields', fields),         middleName(id, doc)]).then(function(x){  return getInfo(id, req, res, next);;         }, function (err) { res.status(404); });};

这将传递给函数getInfo(),该函数将响应发送到客户端:

var redisHGetAll = Q.nbind(client.hgetall, client);var getInfo = function getInfo(id, req, res, next){    return redisHGetAll(id).then(function(x){        return findByMatchingProperties(x);    }, function (err) { res.status(404); }).then(function(){        return client.smembers(id + ':fields', function(err, reply){ data['fields'] = reply; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(data));        });    }, function (err) { res.status(404); })};function findByMatchingProperties(x) {    for (var y in x){        checkData(y, x[y]);    }    function checkData(y, z){        for (var d in data){ if (d === y){     data[d] = z; }        }    }}var data = {    lastName: null,    firstName: null,    middleName: null,    email: null,    university: null,    work: null,    fields: null};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377028.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号