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