首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接mysql数据库时出现node.js错误

连接mysql数据库时出现node.js错误
EN

Stack Overflow用户
提问于 2013-12-27 21:42:28
回答 2查看 2.3K关注 0票数 0

我刚接触node,连接到本地数据库时遇到问题。我已经安装了node-mysql模块和所有东西,并在server.js中添加了路由,如下所示:

代码语言:javascript
复制
var posts = require('./routes/posts');
server.get('/posts/index', posts.index);

然后我想在我的“帖子/索引”中访问数据库并在页面上写帖子。我是这样做的:

代码语言:javascript
复制
exports.index = function(req, res){
    var mysql = require('mysql');

    var connection = mysql.createConnection ({
        host: 'localhost',
        user: 'root',
        password: '5catryws',
        database: 'node_db',
    });

    connection.connect(function(err){
        if(err){
            console.log("ERROR!!! \n"+err);
            throw err;
        }
        else
            console.log('CONNECTED!!!');
    });
    var result;
    var query = connection.query(
            'SELECT * FROM posts',function(err, rows)
            {
                if (err) {
                    throw err;
                }
                console.log('rows', rows);
                result = rows;
            });

        connection.end(function(err){
            console.log('Connection closed!');
    });
    res.render('posts/index',{posts: result,title: 'TITLE'});
};

在控制台中,我得到了以下内容:

错误!错误: connect ECONNREFUSED

代码语言:javascript
复制
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
--------------------
at Handshake.Sequence            (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20)
at new Handshake (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)
at Protocol.handshake (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/mysql/lib/protocol/Protocol.js:41:50)
at Connection.connect (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/mysql/lib/Connection.js:73:18)
at exports.index (/Users/nikola/Sites/nodejs_dummy/myapp/routes/posts.js:11:13)
at callbacks (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/express/lib/router/index.js:164:37)
at param (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/express/lib/router/index.js:138:11)
at pass (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/express/lib/router/index.js:145:5)
at Router._dispatch (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/express/lib/router/index.js:173:5)
at Object.router (/Users/nikola/Sites/nodejs_dummy/myapp/node_modules/express/lib/router/index.js:33:10)

调试:程序节点server.js已退出,代码为8

现在请帮我解决这两天的问题!

提前谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-12-27 21:49:23

请检查您的mysql数据库是否正在本地主机和端口3306(默认)上的计算机上运行。

票数 1
EN

Stack Overflow用户

发布于 2013-12-27 22:12:41

不要在每次调用你的模块get时都创建一个连接。在node始终运行的情况下,您可以在需要模块时创建db连接,然后在导出的任何函数中使用连接对象。如果要为每个请求创建连接,请使用PHP ;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20801783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档