node.js - 无法要求数据库连接作为模块 : Nodejs

标签 node.js express module

我正在尝试封装我的数据库连接。为此,我的根目录中有一个名为 connection.js 的模块,其中包含以下代码:

var mysql = require('mysql');
// Establishing connection with database
var connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: '',
    database: 'SMS'
});
connection.connect(function(err){
    if (err) {
      console.log('Error establishing connection with database. ' + err);
    } else {
      console.log('Connection established with database');
    }
  });

module.exports = connection;

我有我的index.js 文件,我想在其中使用这个模块。

var express = require('express');
var reload = require('reload');
var db = require('./connection');
var router = express.Router();

router.get('/addStudent', function(req, res){
  res.render('addStudent', {
    title: 'Add student'
  });
});


router.post('/add', function(req, res){
  var q = "INSERT INTO `students` (`id`, `name`, `fname`, `class`, `age`, `gender`, `contact`, `address`, `image`, `date`) VALUES (NULL, '" + req.body.name + "', '" + req.body.fname + "', '" + req.body.class + "', '" + req.body.age + "', 'Male', " + req.body.contact + ", 'House# e-13, Sec. 4/F, Zia colony, Orangi town, Karachi.', 'suleman.jpg', 'Jun, 2017')";
  db.query(q, function(err, result){
    if (err) {
      console.log('Error querying the database. ' + err);
    } else {
      console.log('Record inserted successfully');
    }
  });
});

module.exports = router;

抛出以下错误:

Error: Cannot find module './connection'

我不知道我哪里错了。谁能帮我解决这个问题吗?

最佳答案

connection.js:

module.exports = {
connect: function (callback) {

        mysql = require('mysql');

        this.dbh = mysql.createConnection({
              host: '127.0.0.1',
              user: 'root',
              password: '',
              database: 'SMS'
        });

        this.dbh.connect(function (err) {

            if (err) {
                console.log(err);
                callback(false);

            } else {
                callback(true);
            }
        });


}

index.js:

var my = require('./connection');

my.connect(function (cb) {
    if (cb) {
        console.log('mysql conncted');
    } else {
        console.log('mysql connect failed.');
        process.exit(1);
    }
});

关于node.js - 无法要求数据库连接作为模块 : Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48473042/

相关文章:

node.js - NestJS、GraphQL、类验证器 - 在验证方法中访问请求对象

javascript - 在 NodeJS 中处理多个、顺序、依赖的 mongo 查询结果的最佳方法

node.js - express session存储在redis中用于匿名

javascript - NodeJS 更新 API - 内部服务器错误

javascript - 在 React js 中集成 Stripe 支付

python - 在 Python 中线程化相同的函数以获得不同的结果

ruby - 将 block 常量复制到模块中

javascript - Uncaught ReferenceError : date is not defined | JavaScript NodeJs jQuery FileSystem

module - 将内核模块构建到特定目录

javascript - 异步发布和订阅消息在 pubnub 中不起作用