我有一个连接到数据库的服务,以查找相应的查询并执行它。但是有时服务会停止并返回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}`);
});