使用javascript分析csv数据库时出错

使用javascript分析csv数据库时出错,javascript,node.js,csv,ibm-cloud,Javascript,Node.js,Csv,Ibm Cloud,我正在使用IBM的bluemix为学校做一个项目,我很难找出我的错误在哪里。我有一个CSV数据库,其中有一些参数(邻居、房间数量、平方米面积等)。我还有一个JADE文件,其中包含用户必须填写的表单。在这个表单中,用户将选择他想要的房间数量和其他一切。然后,我的JAVASCRIPT应用程序应该能够根据用户的选择运行数据库。然而,由于某些原因,结果并没有出现在网页上,因为他们应该 这是我的密码: /*eslint环境节点*/ //----------------------------------

我正在使用IBM的bluemix为学校做一个项目,我很难找出我的错误在哪里。我有一个CSV数据库,其中有一些参数(邻居、房间数量、平方米面积等)。我还有一个JADE文件,其中包含用户必须填写的表单。在这个表单中,用户将选择他想要的房间数量和其他一切。然后,我的JAVASCRIPT应用程序应该能够根据用户的选择运行数据库。然而,由于某些原因,结果并没有出现在网页上,因为他们应该

这是我的密码:

/*eslint环境节点*/
//------------------------------------------------------------------------------
//用于Bluemix的node.js初学者应用程序
//------------------------------------------------------------------------------
//此应用程序使用express作为其web服务器
//有关详细信息,请参阅:http://expressjs.com
var express=需要(“express”);
//cfenv提供对您的云铸造环境的访问
//有关详细信息,请参阅:https://www.npmjs.com/package/cfenv
var cfenv=require('cfenv');
var fs=需要('fs');
var parse=require('csv-parse');
//创建新的express服务器
var-app=express();
功能选择护墙板(护墙板、参数){
var resultado={Bairro:[],quartos:[],area:[],valor:[],endereco:[],img:[]);
对于(变量i=1;i如果(parametros.Bairro[i]==parametros.Bairro&&dados.quartos[i]==parametros.quartos&&dados.area[i]>=Number(parametros.area)&&dados.valor[i]您应该用i=0而不是1启动
循环。您缺少前两个数据记录。

我已将您的代码更新为:
-将
jade
声明为您的模板语言
-删除未使用的代码
-为
护墙板实施字典比较
-CSV数据库的初始异步加载,请参阅加载CSV数据库
-使用和
equal_to
筛选数据库中的

/*jslint node: true */
'use strict';

// CONFIGURE EXPRESS
var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));
app.set('view engine', 'jade');
// CONFIGURE EXPRESS

var cfenv = require('cfenv');
var appEnv = cfenv.getAppEnv();

var fs = require('fs');
var csvParse = require('csv-parse');

var database;

/**
 * Loads the CSV filename and parse it as JSON Object
 * @param  String filename The csv filename
 * @param  {Function} cb The callback
 */
function load_csv_database(filename, cb) {
  fs.createReadStream(filename).pipe(
    csvParse({ delimiter: ';' }, function(err, data) {
      if (err) {
        cb(err);
        return;
      } else {
        var result = {
          bairro: [],
          quartos: [],
          area: [],
          valor: [],
          endereco: [],
          img: []
        };
        data.forEach(function(e) {
          result.bairro.push(e[0]);
          result.quartos.push(e[1]);
          result.area.push(Number(e[2]));
          result.valor.push(Number(e[3]));
          result.endereco.push(e[4]);
          result.img.push(e[5]);
        });
        cb(null, result);
      }
    }));
}

// initial database async load
load_csv_database(__dirname + '/static/BD.csv', function(err, result) {
  if (!err)
    database = result;
  else
    console.log('error:', err);
});

function equal_to(origin) {
  return function compareTo(target) {
    for (var p in origin) {
      if (origin.hasOwnProperty(p)) {
        if (origin[p] !== target[p]) {
          return false;
        }
      }
    }
    for (var p2 in target) {
      if (target.hasOwnProperty(p2)) {
        if (origin[p2] !== target[p2]) {
          return false;
        }
      }
    }
    return true;
  };
}

app.get('/', function(req, res) {
  res.render('cadastro', { pageTitle: 'Cadastro Usuário' });
});

app.post('/resumo', function(req, res) {
  // use the global variable "database"
  var result = database.filter(equal_to(req.body));
  res.render('resumo.jade', {
    pageData: { pageTitle: 'Resumo do Pedido do Usuário' },
    formData: req.body,
    imoveis: result
  });
});

app.listen(appEnv.port, '0.0.0.0', function() {
  console.log('server starting on ' + appEnv.url);
});

谢谢!不过,这并没有解决我的问题,哈哈哈。