node.js - nodejs回调函数的问题
PHPz
PHPz 2017-04-17 13:21:49
[Node.js讨论组]

先跟大家拜个年!各位过年好
然后
直接上代码吧

server.js

var resu;
var db = require("./dbs.js");
var http=require("http");
var data = [
   'OrderNO',
   'DATE_FORMAT( OrderDate , "%Y-%m-%d")OrderDate',
   'c.CustomName',
   '(select count(Quantity) from SalesInfo where OrderNo=s.OrderNO)Quantity',
   '(select sum(Money) from SalesInfo where OrderNo=s.OrderNO)Money',
   'OrderStatus',
   'SalesInfo as s left join Customer as c on s.CustomID=c.CustomNo',
   '1=1'
]   
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        db.searchDb(data,function(error,resultData){
            res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"*"});
        if(error){
            //返回错误信息
            res.write(error);
        }else{
            resu=JSON.stringify(resultData);
            res.write(resu);
        }      
           res.end();
        });
    }
    
});
server.listen(1338,"localhost",function(){
    console.log("开始监听...");
});

dbs.js

exports.searchDb =function (sqldata,resultCallback){
var Mysql = require('node-mysql-promise');
var mysql = Mysql.createConnection({
    host: 'qdm1.my3w.com',
    user: 'qdm1',
    password: '1qE',
    database:'qdm11_db'
});
//SELECT * FROM table;
//mysql.table('SalesInfo').field('OrderNO,OrderDate,CustomID,Quantity,Money,OrderStatus').select().then(function (data) 
mysql.query('SELECT DISTINCT %s,%s,%s,%s,%s,%s FROM %s WHERE %s',sqldata).then(function (data)
{
    //return data;
    console.log(data);
    resultCallback(null,data);
}).catch(function (e) {
    console.log(e);
    resultCallback(e);
});
}

现在遇到的问题是:当地一次点击查询时是没有问题的 当再点一次查询按钮就会报错说sql句有问题。。mysql.query()这里报错
大神帮我看下是不是我callback写的有问题呢 跪谢!
补充下错误信息

c:\Users\lenovo\WebstormProjects\bootstrap>node myserver.js
开始监听...
[ RowDataPacket {
    OrderNO: '20160127123450552',
    OrderDate: '2016-01-27',
    CustomName: '冯硕',
    Quantity: 1,
    Money: 1500,
    OrderStatus: '1' },
  RowDataPacket {
    OrderNO: '20160205432183109',
    OrderDate: '2016-02-05',
    CustomName: '刘洋',
    Quantity: 2,
    Money: 3100,
    OrderStatus: '1' } ]
{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT %s,%s,%s,%s,%s,%s FROM %s WHERE %s,OrderNO,DATE_FORMAT( OrderDat' at line 1]
  code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlState: '42000',
  index: 0 }
PHPz
PHPz

学习是最好的投资!

全部回复(1)
巴扎黑

我在手机上粗略看了看,问题应该是出在try catch上,等回家再仔细看看

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号