无法读取未定义的Node.js的属性

时间:2016-04-25 13:04:15

标签: javascript mysql node.js

我是node.js的新手,我在查询MySQL DB方面遇到了困难。这是一个非常简单的网页,我所要做的就是从输入中读取值并在我的数据库中搜索它。 问题是当网页执行查询时,var num仍未定义。我如何保证在执行查询之前获得该值?

var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io');
var express = require('express');
var mysql = require('mysql');
var port    =   process.env.PORT || 8001;
var router = express.Router();
var app = express();
var server = http.createServer(app);

var n_eleitor;
var nome;
var local;
var num_bi;
var num;

//  ---- ROUTES ------
app.get('/', function(req, res) { //homepage
    res.sendFile(__dirname+'/index.html');
    handle_database(req, res);
});

app.get('/result', function(req, res, next) { //results
        res.render('result.ejs', { n_eleitor: n_eleitor, local: local, nome: nome }); 
    });
app.use('/', router);

// ---- CONECTION -----
server.listen(port);

var listener = io.listen(server);
listener.sockets.on('connection', function(socket){

    socket.on('client_data', function(data){ //receive data from client
    //console.log(data.letter);
    num_bi = data.letter;
    console.log(num_bi);
    var num = "'"+num_bi+"'";
    console.log(num);
    });
});
// ---- MYSQL ------
var pool = mysql.createPool ({  //pool maitains a cache of database connections -> handles multiple connections
    connectionLimit : 100,
    host : 'localhost',
    user : 'root',
    password : 'soraia',
    database : 'pti2',
});


function handle_database(req, res) {
    pool.getConnection(function(err, connection){
        if(err){
            connection.release(); //connection returns to the pool, ready to be used again by someone else.
            return;
        }
        //console.log('ID:' + connection.threadId);

        connection.query("select eleitor.*, freguesia.designacao from freguesia, eleitor where num_bi= ? and freguesia.cod_freg=eleitor.cod_freg",[num], function(err, rows, fields){
           n_eleitor = rows[0].cod_eleitor;
            nome = rows[0].nome;
            local = rows[0].designacao;
            connection.release();
            console.log(num);
            console.log(rows);
        });

    });
}

当我运行程序时,我得到“TypeError:无法读取未定义的属性'cod_eleitor'”,我认为那是因为我之前说的... 请有人帮帮我吗?

0 个答案:

没有答案