如何在node.js所有应用程序文件中使用mysql?

如何在node.js所有应用程序文件中使用mysql?,mysql,node.js,rest,express,Mysql,Node.js,Rest,Express,各位好,首先,我希望大家身体健康 很抱歉,如果这个问题有点让人困惑,但我正在尝试创建一个与MySql一起工作的API/webservice,所以我 在root(/)中,包含连接的文件bd.js bd.js: var mysql = require('mysql'); var connection = mysql.createConnection({ host : '127.0.0.1', user : 'root', password : '',

各位好,首先,我希望大家身体健康

很抱歉,如果这个问题有点让人困惑,但我正在尝试创建一个与MySql一起工作的API/webservice,所以我

在root(/)中,包含连接的文件bd.js

bd.js:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : '',
    database : 'skey-9'
});

connection.connect(function(err) {
    if (err) throw err;
});

module.exports = connection;
const express = require('express');
const router = express.Router();
var db = require('./../bd');


con.connect((err) => {
  if(err){
    console.log('Error connecting to Db');
    return;
  }
  console.log('Connection established');
});


con.query('SELECT * FROM teste', (err,rows) => {
    if(err) throw err;
  
    console.log('Data received from Db:');
    console.log(rows);
  });


router.get('/', (req, res, next) => {
        res.status(200).json({
        message: 'handling GET requests to / products',
        query: rows
        
    });
});



module.exports = router;
C:\NODE\node-rest\server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
    at Function.Module._load (internal/modules/cjs/loader.js:840:27)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\NODE\node-rest\api\routes\products.js:3:10)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\NODE\\node-rest\\api\\routes\\products.js',
    'C:\\NODE\\node-rest\\app.js',
    'C:\\NODE\\node-rest\\server.js'
  ]
然后我添加到/app.js,并拥有不同目录的路由

app.js

const express = require('express');
const app = express();
const morgan = require('morgan');
const bodyParser = require('body-parser');
const db = require('./bd');

const productRoutes = require('./api/routes/products');
const orderRoutes = require('./api/routes/order');

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json());

//Routes 
app.use('/products', productRoutes);
app.use('/orders', orderRoutes);
在最后一个示例中,我尝试在/routes/products.js中查询一个Select

products.js:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : '',
    database : 'skey-9'
});

connection.connect(function(err) {
    if (err) throw err;
});

module.exports = connection;
const express = require('express');
const router = express.Router();
var db = require('./../bd');


con.connect((err) => {
  if(err){
    console.log('Error connecting to Db');
    return;
  }
  console.log('Connection established');
});


con.query('SELECT * FROM teste', (err,rows) => {
    if(err) throw err;
  
    console.log('Data received from Db:');
    console.log(rows);
  });


router.get('/', (req, res, next) => {
        res.status(200).json({
        message: 'handling GET requests to / products',
        query: rows
        
    });
});



module.exports = router;
C:\NODE\node-rest\server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
    at Function.Module._load (internal/modules/cjs/loader.js:840:27)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\NODE\node-rest\api\routes\products.js:3:10)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\NODE\\node-rest\\api\\routes\\products.js',
    'C:\\NODE\\node-rest\\app.js',
    'C:\\NODE\\node-rest\\server.js'
  ]
但我得到一个错误,我已经尝试“玩”的bd文件

错误:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : '',
    database : 'skey-9'
});

connection.connect(function(err) {
    if (err) throw err;
});

module.exports = connection;
const express = require('express');
const router = express.Router();
var db = require('./../bd');


con.connect((err) => {
  if(err){
    console.log('Error connecting to Db');
    return;
  }
  console.log('Connection established');
});


con.query('SELECT * FROM teste', (err,rows) => {
    if(err) throw err;
  
    console.log('Data received from Db:');
    console.log(rows);
  });


router.get('/', (req, res, next) => {
        res.status(200).json({
        message: 'handling GET requests to / products',
        query: rows
        
    });
});



module.exports = router;
C:\NODE\node-rest\server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
    at Function.Module._load (internal/modules/cjs/loader.js:840:27)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\NODE\node-rest\api\routes\products.js:3:10)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\NODE\\node-rest\\api\\routes\\products.js',
    'C:\\NODE\\node-rest\\app.js',
    'C:\\NODE\\node-rest\\server.js'
  ]
C:\NODE\NODE rest\server.js
位于Function.Module.\u resolveFilename(internal/modules/cjs/loader.js:957:15)
at Function.Module._load(内部/modules/cjs/loader.js:840:27)
at Module.require(内部/modules/cjs/loader.js:1019:19)
根据需要(内部/modules/cjs/helpers.js:77:18)
反对。(C:\NODE\NODE rest\api\routes\products.js:3:10)
at模块编译(内部/modules/cjs/loader.js:1133:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:1153:10)
at Module.load(内部/modules/cjs/loader.js:977:32)
at Function.Module._load(内部/modules/cjs/loader.js:877:14)
at Module.require(内部/modules/cjs/loader.js:1019:19){
代码:“未找到模块”,
requireStack:[
'C:\\NODE\\NODE rest\\api\\routes\\products.js',
'C:\\NODE\\NODE rest\\app.js',
'C:\\NODE\\NODE rest\\server.js'
]

我的问题是如何与我正在创建的所有应用程序建立“全局”mysql连接。

所以我有两个子路径,出于某种原因我不得不更改

 var db = require('./../bd'); " 

忘记这一点。如果无法解决我的问题,我们必须运行到所有路由器的连接?