js学习总结----crm客户管理系统之node编写API接口

具体API代码如下

var http = require(‘http‘),
    url = require(‘url‘),
    fs = require(‘fs‘);
var server  = http.createServer(function(req,res){
    var urlObj = url.parse(req.url,true),
        pathname = urlObj.pathname,
        query = urlObj.query;//存储的是客户端请求的URL地址中的问号传参后面的信息(并且是以键值对的方式存储的)
    //静态资源文件请求的处理
    var reg = /\.(HTML|CSS|JS|ICO)/i;
    if(reg.test(pathname)){
        var suffix = reg.exec(pathname)[1].toUpperCase();
        var suffixMIME = "text/html";
        switch(suffix){
            case "CSS":
                suffixMIME = "text/css"
                break;
            case "JS":
                suffixMIME = "text/javascript"
                break;
        }
        try{
            var conFile = fs.readFileSync("."+pathname,‘utf-8‘);
            res.writeHead(200,{‘content-type‘:suffixMIME+";charset=utf-8"});
            res.end(conFile);
        }catch(e){
            res.writeHead(404,{‘content-type‘:"text/plain;charset=utf-8"});
            res.end("file is not found~");
        }
        return;
    }
    //API数据接口的处理
    var con = null,result = null,customId = null,customPath = "./json/custom.json";
    //首先把custom.json文件中的内容都获取到
    con = fs.readFileSync(customPath,‘utf-8‘);
    con.length===0?con = ‘[]‘:null;//为了防止我们custom.json什么都没有,con是一个空字符串,我们使用JSON.parse转换的时候会报错,我们让其等于‘[]‘
    con = JSON.parse(con);
    //1)获取所有的客户信息
    if(pathname === "/getList"){
        //开始按照API文档中的规范准备给客户端返回的数据
        result = {
            code:1,
            msg:"没有任何的客户信息",
            data:null
        };
        if(con.length>0){
            result = {
                code:0,
                msg:"成功",
                data:con
            };
        }
        res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
        res.end(JSON.stringify(result));
        return;
    }
    //2)、根据传递进来的客户ID获取某一个具体的客户信息
    if(pathname==="/getInfo"){
        //把客户端传递进来的ID
        var customId = query[‘id‘];
        result = {
            code:1,
            msg:"客户不存在",
            data:null
        }
        for(var i = 0;i<con.length;i++){
            if(con[i]["id"]==customId){
                result = {
                    code:0,
                    msg:"成功",
                    data:con[i]
                }
                break;

            }

        }
        res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
        res.end(JSON.stringify(result));
        return;

    }
    //3)、根据传递进来的客户ID删除这个客户
    if(pathname==="/removeInfo"){
        var flag = false;
        customId = query["id"];
        for(var i = 0;i<con.length;i++){
            if(con[i]["id"]==customId){
                con.splice(i,1);
                flag = true;
                break;
            }
        }
        result={
            code:1,
            msg:‘删除失败‘
        }
        if(flag){
            fs.writeFileSync(customPath,JSON.stringify(con),‘utf-8‘)
            result={
                code:0,
                msg:‘删除成功‘
            }
        }
        res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
        res.end(JSON.stringify(result));
        return;
    }
    //4)、增加客户信息
    if(pathname==="/addInfo"){
        //获取客户端通过请求主体传递进来的内容
        var str = "";
        req.on("data",function(chunk)){
            str+=chunk;
        }
        req.on("end",function(){
            if(str.length===0){
                res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
                res.end(JSON.stringify({
                    code:1,
                    msg:"增加失败,没有传递任何需要增加的信息"
                }));
                return;
            }
            var data = JSON.parse(str);
            //在现有的DATA中追加一个ID:获取con中最后一项的ID,新的ID是在原有基础上加一即可,如果之前一项都没有,我们这一项的ID就是1
            if(con.length===0){
                data["id"] = 1;
            }else{
                data["id"] = parseFloat(con[con.length-1]["id"])+1;
            }
            con.push(data);
            fs.writeFileSync(customPath,JSON.stringify(con),‘utf-8‘);
            res.end(JSON.stringify({
                code:0,
                msg:"增加成功"
            }));

        })
        return;
    }
    //5)、修改客户信息
    if(pathname==="/updateInfo"){
        str ="";
        req.on("data",function(chunk){
            str+=chunk;
        })
        req.on("end",function(){
            if(str.length===0){
                res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
                res.end(JSON.stringify({
                    code:1,
                    msg:"修改失败,没有传递任何需要修改的信息"
                }));
                return;
            }
            var flag = false;
                data = JSON.parse(str);
            for(var i = 0;i<con.length;i++){
                if(con[i]["id"]==data["id"]){
                    con[i] = data;
                    flag = true;
                    break;
                }
            }
            result.msg = "修改失败,需要修改的客户不存在";
            if(flag){
                fs.writeFileSync(customPath,JSON.stringify(con),"utf-8");
                result = {
                    code:0,
                    msg:"修改成功"
                }
            }
            res.writeHead(200,{‘content-type‘:‘application/json;charset=utf-8;‘});
            res.end(JSON.stringify(result));
        })
        return;
    }
    //如果请求的地址不是上述任何一个,则提示不存在
    res.writeHead(404,{‘content-type‘:‘text/plain;charset=utf-8;‘});
    res.end("请求的数据接口不存在")

})
server.listen(80,function(){
    console.log("server is success,listening on 80 port")
})
时间: 2024-08-29 00:50:02

js学习总结----crm客户管理系统之node编写API接口的相关文章

js学习总结----crm客户管理系统之前端页面开发及数据渲染

具体代码如下: index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="css/index.css" charset='utf-8'> </h

CRM客户管理系统开发多少钱?

俗话说的好:客户是上帝.这句话用在企业身上也没错,???对于企业来说,如何精准的把握住客户的心理需求,并且给予他们个性化的解决方案成为了他们最头疼的问题.为了解决这个问题,CRM管理系统应运而生.这是一款高效结合互联网技术,为企业提供的智能维护客户关系,提高企业员工工作效率的平台.有了它,企业可以更加快速的运转,员工的工作也能更加省心愉快.一.CRM客户管理系统作用:1.集中管理客户资料:客户资料是企业能够了解到客户消费行为的重要武器,CRM管理系统把客户资料高度集中起来,并且按照一定的顺序进行

CRM客户管理系统如何管理企业需求

如今,人工智能普及,越来越多人开始怀疑销售的作用.其实,人与人之间的交易,是需要一定的情感表达,而每个销售都是不同的个体,为了提高效率和效益,CRM客户管理系统就表现出独特的作用和优势. 1.找准客户需求点 销售人员最主要的工作,就是找出客户购买此种产品或服务的主要目的是什么,反之还有客户不购买的抵触原因是什么.面对大量的客户数据,销售人员只有将混淆的杂质过滤掉,才能够面对客户的真实想法.CRM客户管理系统能够记录了客户的交易数据和信息,智能化的判断潜在客户的消费习惯,通过分配管理,让销售通过消

CRM客户管理系统认可度为何越来越高

在智能化的时代,企业开始摒弃传统的观念,拥抱互联网信息化的发展浪潮,企业信息化是改进销售的一种方式. 在进行CRM客户关系管理系统运营的过程中,通过CRM系统来实现销售的自动化,可以让企业主从繁琐的事务中抽出身来,提高企业的管理和工作效率.企业不需过多的专注重复性的工作安排和日志,而是把精力放在营销和销售的环节,这让企业的销售团队更有目的性,在客户市场中实现突破,提升了企业自身的发展动力. CRM系统能够让销售团队减轻负担,这也是CRM这么受支持的主要原因之一.通过CRM系统,许多营销和销售的流

惠州CRM客户管理系统都有什么特点?

有的企业认为可以通过CRM客户管理系统与客户建立一种长期.稳定的密切关系,并通过老客户不断带来新客户,为企业的持续发展奠定基础.还有的企业使用CRM系统是将其作为一个数据中心,通过各项数据对客户情况进行分析.还有一些企业使用CRM客户管理系统的目的是为了规范管理企业的运营业务.不管是哪种初衷,小编相信CRM客户管理系统能为企业提供的帮助是多方面的,只要企业合理的运用是可以实现顾客与企业的"双赢". 一.运营效果 CRM客户管理系统可以将售前.售中.售后每个环节进行联系,将业务流程进行整

淘宝API学习之道:淘宝TOP之API接口接入教程

作为一个中小型网站开发者,淘宝API的开放大大缩短了网站的开发周期和运作效率,面对海量的数据,开发者只要仔细阅读开发文档,熟悉相应的接口,就可以把数据导入自己的网站,这样就不必望洋兴叹了. 目前淘宝TOP的API接口正日益完善,但相应的接口和开发文档还不是很全,经过了3天的仔细研究,今晚上终于把淘宝API的调用弄明白了.不是很完善,文中如有瑕疵,还望批评指正,好,闲话到此为止,请看正文.本文是在测试环境下调用的淘宝API,虽然没有正式上线,但可以作为初学者对开发流程的一个入门. 首先登陆http

Node教程——API接口开发(MangoDB+Express)

git源码 说明:源码已经全部上传到github,仓库地址: https://github.com/BM-laoli/Node-api-Design 一.大纲 大纲: 关于架构, 首先我们的有一个app.js这个就是根路由起点,用来最初的打入口 它的功能有: 1.1 引入模块创建基础的网站服务器, 1.2 导入bodyPasser,过滤还有处理我们的post请求 1.3 导入数据库连接 1.4 把路由开放出去 再来一个main.js它在我的route文件夹下, 2.1 什么需啊哟再这里做二次拦截

简信CRM客户管理系统让管理不再困难

在销售团队的管理上,团队的领导总是会遇到问题,团队的销售业绩总是得不到提升,月中月底销售数字很难看,无法向领导汇报.但是管的太松散,团队没有凝集力,战斗力也不理想:管的太严厉,则让员工不适应,怨声载道的,容易造成大规模的员工离职.其实,销售团队过程管理才是重点.企业可以借助简信CRM规范销售人员的工作,建立规范的销售流程,当企业有更多的销售人员,都可以按照CRM中已经形成的规范进行操作,不仅管理好了销售团队,而且销售人员的职业素质也能全面提升,快速复制销售人才.只有培养优质销售人员快速成长,能提

【Node.js学习笔记三】什么是Node封装模块?(Node Packaged Module.module)

Node封装模块是一个打包的库,它可以很容易的在不同的项目中被共享.重用和安装. 有很多可用于多种用途的不同模块. 例如: Mongoose模块为MongoDB提供了一个ODM Express扩展了Node的HTTP功能 Node.js模块由不同的第三方机构创建,提供现有Node.js所缺乏的重要功能. 每个Node封装模块包含一个 package.json文件,该文件包含元素数据信息,如: 名称 版本 作者 贡献者 以及控制元数据,比如依赖和执行诸如安装与发布动作时,Node包管理器将使用的其