首页 / NODEJS / nodejs连接mysql错误
nodejs连接mysql错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nodejs连接mysql错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2619字,纯文字阅读大概需要4分钟。
内容图文
我使用mysql和express来编写一个简单的登录系统.
database.js:
var mysql = require('mysql');
var config = require('../config/config');
var pool = mysql.createPool(config.mysql_dev);
var query=function(sql,callback){
pool.getConnection(function(err,conn){
if(err) console.log("POOL ==> " + err);
else{
conn.query(sql,function(qerr,vals,fields){
//release connection
conn.release();
callback(qerr,vals,fields);
});
}
});
};
module.exports=query;
index.js:
router.post('/login',function(req,res){
var query = require('../modules/database');
query("select * from managers where ManagerID =10001",function(err,vals,fields){
var temp=JSON.stringify(vals);
var manager = JSON.parse(temp)[0];
if(req.body.password===manager.password){
req.session.manager = manager;
res.redirect('/home');
}
res.send('ID or password wrong!');
});
});
但是,每当我收到此错误时:
/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/Parser.js:77
throw err; // Rethrow non-MySQL errors
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11)
at ServerResponse.header (/opt/workspace/project/nodejs-demo/node_modules/express/lib/response.js:718:10)
at ServerResponse.send (/opt/workspace/project/nodejs-demo/node_modules/express/lib/response.js:163:12)
at /opt/workspace/project/nodejs-demo/routes/index.js:40:7
at Query._callback (/opt/workspace/project/nodejs-demo/modules/database.js:16:17)
at Query.Sequence.end (/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Query._handleFinalResultPacket (/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
at Query.EofPacket (/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/sequences/Query.js:128:8)
at Protocol._parsePacket (/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/opt/workspace/project/nodejs-demo/node_modules/mysql/lib/protocol/Parser.js:73:12)
怎么解决?
我不知道如何解决它并搜索了很长时间.
如果我不清楚地描述它,只需评论,我会添加我知道的任何东西.
解决方法:
我在代码中的注释中解释了你的问题.
router.post('/login',function(req,res){
var query = require('../modules/database');
query("select * from managers where ManagerID =10001",function(err,vals,fields){
var temp=JSON.stringify(vals);
var manager = JSON.parse(temp)[0];
if(req.body.password===manager.password){
req.session.manager = manager;
//You are redirecting user to home
res.redirect('/home');
//You should add 'return'
return;
}
//This will only accessible if password is not match
res.send('ID or password wrong!');
});
});
内容总结
以上是互联网集市为您收集整理的nodejs连接mysql错误全部内容,希望文章能够帮你解决nodejs连接mysql错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。