Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用express js和vuejs提供不同的本地json数据_Javascript_Node.js_Json_Express_Vue.js - Fatal编程技术网

Javascript 使用express js和vuejs提供不同的本地json数据

Javascript 使用express js和vuejs提供不同的本地json数据,javascript,node.js,json,express,vue.js,Javascript,Node.js,Json,Express,Vue.js,我对NodeJS和Expressjs非常陌生。我在一个名为json data的文件夹中有三个json文件,我想设置一个简单的nodejs应用程序,它是serve data,我可以在vuejs前端使用它。但我不知道如何创建一个简单的nodeJS应用程序来提供数据 这是我正在努力完成的任务。 呼叫中心每天都会通过呼叫中心代理打大量的电话,这些电话会转储到JSON文件中。我们需要您处理大量数据,并以良好的方式将其呈现给主管 数据的问题在于结构,它分布在多个文件中。我需要解决这个问题,并以一种有用的方式

我对NodeJS和Expressjs非常陌生。我在一个名为json data的文件夹中有三个json文件,我想设置一个简单的nodejs应用程序,它是serve data,我可以在vuejs前端使用它。但我不知道如何创建一个简单的nodeJS应用程序来提供数据

这是我正在努力完成的任务。 呼叫中心每天都会通过呼叫中心代理打大量的电话,这些电话会转储到JSON文件中。我们需要您处理大量数据,并以良好的方式将其呈现给主管

数据的问题在于结构,它分布在多个文件中。我需要解决这个问题,并以一种有用的方式呈现数据

1.第一部分: 创建一个简单的nodeJS应用程序来提供数据。您可以使用任何nodeJS框架来实现这一点。不应更改
json data
文件夹中的数据

2.第二部分: 创建一个使用现代JS前端框架的应用程序Vue。前端应用程序应具有以下路径:

  • /
    显示呼叫聚合表的主页,例如:

    电话号码 通话次数 上次通话详情 +49151484522 3个电话 代理名称/11:46 +49158544147 1个电话 代理人姓名/14:46 +49151783331 2个电话 代理名称/16:46
    从技术上讲,您可以在express服务器上加载内存中的所有JSON,并在每个请求中搜索要查找的数据

    事实上,如果你有更大的文件,这将是非常低效的。这意味着每个请求都会将JSON加载到内存中。此外,搜索大型对象的成本也很高

    理想情况下,您应该将条目存储在数据库中。如果您不能或不需要使用数据库来存储这些数据,您可以使用某种搜索引擎对其进行索引。您可以在服务器上使用一些轻量级搜索引擎。
    一个快速的谷歌搜索带来了这个:

    虽然我个人没有使用过它。

    除了文件系统之外,使用数据库也不错

    这里有一个样品溶液
  • json data
    文件夹添加到此项目的根目录

  • 在该项目的根目录中添加
    key.js
    文件

  • module.exports={
    路径:“json数据”,
    资源:“resourcation.json”,
    代理:“AGENTS.json”,
    日志:“LOGS.json”,
    }
    
  • 路由器文件
  • const express=require(“express”);
    const router=express.router();
    const CommonController=require(“../controllers/common”);
    router.get(“/”,CommonController.home);
    get(“/agent/:id/”,CommonController.agent);
    router.get(“/call/:number/”,CommonController.call);
    module.exports=路由器;
    
  • 控制器文件
  • const fs=require('fs');
    常量路径=要求(“路径”);
    常量键=需要(“../KEYS”);
    函数get_logs(){
    让文件名=path.join(u dirname,`../${KEYS.path}`,KEYS.LOGS)
    让rawdata=fs.readFileSync(文件名);
    让logs=JSON.parse(rawdata);
    返回日志;
    }
    函数get_agents(){
    让file_name=path.join(u dirname,`../${KEYS.path}`,KEYS.AGENTS)
    让rawdata=fs.readFileSync(文件名);
    让agents=JSON.parse(rawdata);
    让数据={}
    agents.forEach(元素=>{
    数据[element.identifier]=元素
    });
    返回数据;
    }
    函数get_regoulation(){
    让文件名=path.join(u dirname,`../${KEYS.path}`,KEYS.resourcation)
    让rawdata=fs.readFileSync(文件名);
    让agents=JSON.parse(rawdata);
    让数据={}
    agents.forEach(元素=>{
    数据[element.identifier]=element.resolution
    });
    返回数据;
    }
    exports.home=异步(请求、恢复、下一步)=>{
    试一试{
    let logs=get_logs();
    让customData={}
    logs.forEach(元素=>{
    如果(!customData[元素编号]){
    customData[元素.编号]=[元素]
    }否则{
    customData[element.number].push(元素)
    }
    });
    }
    捕捉(错误){
    console.log(错误)
    返回res.status(500).json({message:“文件问题”});
    }
    let agent=get_agent();
    让结果=[];
    试一试{
    for(customData中的常量编号){
    const object=customData[number];
    const last=object[object.length-1];
    const_agent=agent[last.agentIdentifier];
    console.log(_agent,last.agentIdentifier)
    常数数据={
    数字,
    numberOfCall:object.length,
    名称:_agent.firstName++_agent.lastName,
    持续时间:last.duration
    };
    结果:推送(数据);
    }
    }
    捕捉(错误){
    返回res.status(500).json({message:“数据操作问题”});
    }
    res.status(200).json(结果);
    };
    exports.agent=async(请求、恢复、下一步)=>{
    const ID=req.params.ID;
    常量结果=[]
    试一试{
    const regoulation=get_regoulation();
    const logs=get_logs();
    logs.forEach(元素=>{
    if(element.agentIdentifier==ID){
    结果:推({
    编号:element.number,
    dateTime:element.dateTime,
    分辨率:regoulation[元素标识符]
    })
    }
    });
    }
    捕捉(错误){
    console.log(错误)
    返回res.status(500).json({message:“数据提取问题”});
    }
    res.status(200).json(结果);
    };
    exports.call=async(请求、恢复、下一步)=>{
    常量编号=请求参数编号;
    常量结果=[]
    试一试{
    const logs=get_logs();
    const agents=get_agents();
    const regoulation=get_regoulation();
    logs.forEach(元素=>{
    if(element.number==number){
    常量代理=代理[element.agentIdentifier]
    结果:推({
    姓名:agent.firstName+