Node.js:val:slice不是函数

时间:2019-02-07 05:28:34

标签: mysql node.js

我有一个连接到数据库的服务,以查找相应的查询并执行它。但是有时服务会停止并返回val.slice错误不是函数。该服务可以在本地db上完美运行,但无法在服务器上运行,我无法弄清错误是什么。

错误正在dstaticvalues.js的这一行上出现:

connection.query(query,[chartcode], function (err, done)

这是我的代码: dstaticvalues.js

var query='SELECT * FROM CHART where CHART_CODE=?'

    async.waterfall([
    function (callback) {
        pool.getConnection(function (err, connection) {
            connection.query(query,[chartcode], function (err, done) {
                if (err) {
                    connection.release();
                }
                for (var i in done) {

                 result = done[i].CHART_QUERY;
                }
                callback(null, result);
            }
            );
        });
    },
    function (result,callback) {
        pool.getConnection(function (err, connection) {
            connection.query(result, function (err, done) {
                if (err) {
                    connection.release();
                }

                callback(err, done);
            }
            );
        });
    },
],
    function (err, results) {
        if (err) console.log(err);
        //console.log('queries finished', results);
        callback(null, results);
});

}

routes.js:

const Values = require('../sqlQueries/dstaticvalues');

module.exports = {
    drawvalues: (req, res) => {

        var chartcode=req.params.chartcode;
        Values.getValues(chartcode,function(err, result){
            if (err) 
                return res.json({});

            return res.json(result);

        });

app.js:

const express = require('express');
//const fileUpload = require('express-fileupload');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const path = require('path');
const app = express();
var https = require('https');
var fs = require('fs');


// const {getHomePage} = require('./routes/index');
// const {addPlayerPage, addPlayer, deletePlayer, editPlayer, editPlayerPage} = 

const { drawvalues } = require('./routes/staticvalues')


// server.use(restify.plugins.acceptParser(server.acceptable));
// server.use(restify.plugins.queryParser());
// server.use(restify.plugins.bodyParser());


app.use((req, res, next) => {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
    if (req.method === 'OPTIONS') {
        res.header("Access-Control-Allow-Methods", "POST, PUT, PATCH, DELETE, GET");
        return res.status(200).json({});
    }
    if (req.method === 'PATCH') {
        res.header("Access-Control-Allow-Methods", "POST, PUT, PATCH, DELETE, GET");
        return res.status(200).json({});
    }
    next();
});





var pool = mysql.createPool({
    connectionLimit: 100,

    host:'localhost',
    user: '',
    password: '',
    database: '',
    connectTimeout: 60 * 60 * 1000, //config to 10 minutes
    acquireTimeout: 60 * 60 * 1000,// 
    timeout: 60 * 60 * 1000,
    debug: false
});

module.exports = pool;

// connect to database

pool.getConnection(function (err, callback) {
    if (err) {
        console.log(err);
        //callback(true); 
        return;

    }
    console.log('Connected to database');

});
global.pool = pool;




// configure middleware
app.set('port', process.env.port || port); // set express to use this port
app.set('views', __dirname + '/views'); // set express to look in this folder to render our view
// app.set('view engine', 'ejs'); // configure template engine
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json()); // parse form data client
app.use(express.static(path.join(__dirname, 'public'))); // configure express to use public folder
// app.use(fileUpload()); // configure fileupload




app.use('/staticvalues/dstaticvalues/:chartcode', drawvalues);


// set the app to listen on the port
var port = process.env.PORT || 5000;
app.listen(port, () => {
    console.log(`Server running on port: ${port}`);
});

0 个答案:

没有答案