javascript - 为什么显示连接未定义?

标签 javascript node.js

我正在尝试使用 connection.js 文件中的 connection 并使用 在不同的文件 webFrontend.js 中使用它导出对象。现在我在运行服务器上得到的是:

{
  "Result": "undefinedThis is result"
}

这意味着连接未定义。为什么会发生这种情况?如果在同一个 (webFrontend.js) 文件中创建 getConnection,则 connection 工作正常,但问题是当我使用 getConnectionconnection.js 中的相同导出函数中,因此 connection 未定义错误:

这里有 2 个必要的文件(路由文件没有问题),它们解释了我正在做的事情:

connection.js

var mysql = require('mysql');
exports.connExport = function () {
    var connectionPool = mysql.createPool({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'rockcity_followme'
    });
    if(connectionPool) {
        connectionPool.getConnection(function (err, connection) {
            if (err) {
                return err;
            } else {
                return connection;
            }
        });
    }else{
        var abc="return error";
        return abc;
    }
}

webFrontend.js

var connObj=require('../Routes/connection.js');
var connection=connObj.connExport();
exports.getIndivRecords= function(req, res, next){
res.send({
    Result: connection+"This is result"
});
    return next();
};

最佳答案

无需 .js 文件扩展名,它会自动为您添加。

下面的代码使用标准错误优先回调

webFrontend.js

var connection = require('../Routes/connection');
exports.getIndivRecords = function(req, res, next){

  // connection takes a standard error-first callback
  connection(function(err, conn){
    if (err) {
      // Handle the error returned
      console.log(err);
    }
    // The database connection is available here as conn
    console.log( "Connection:" + conn);

    // presumably you want to do something here
    // before sending the response

    res.send({
      Result: conn + "This is result"
    });
  });
  return next();
};

connection.js

var mySQL = require('mysql');
var connectionPool = mySQL.createPool({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'rockcity_followme'
});
var getConnection = function (cb) {
  connectionPool.getConnection(function (err, connection) {
    // pass the error to the callback
    if (err) {
      return cb(err);
    }
    cb(null, connection);
  });
};
module.exports = getConnection;

关于javascript - 为什么显示连接未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40501764/

相关文章:

node.js - 使用 SSL 配置 Nginx 后 Meteor 应用程序无法运行

javascript - 未处理的拒绝 SequelizeEagerLoadingError :Sequelize

node.js - 仅将 JsonSchema 与 Mongoose 一起使用可能吗?

php - 将 HTML 变量传递给 JAVASCRIPT 和 PHP 的简单模态联系表单

javascript - 自定义 Javascript 变量的问题

javascript - 如何在 HTML5 Canvas 中调整图像的色调、饱和度和亮度?

javascript - 一旦在 node.js Web 服务器上生成图像(使用 express),显示图像的最简单方法是什么?

javascript - 语法错误 : Unexpected token * after importing sequelize model db object

javascript - Javascript中关联数组的[]和{}之间的区别

javascript - 如何在更新 jquery 中的动态标签后重定向第二个 html 页面