Путаница в каталогах с Express JS

Как должна выглядеть структура каталогов, чтобы требовать наши собственные модули? Например, если модуль в папке с именем modules требует модуль из папки базы данных, будет ли это выглядеть так?:

var db = require('./database/db.js')

Проблема, с которой я столкнулся, заключается в том, что у меня есть этот код, требующий одного из моих модулей:

//Require mysql connector that you installed with npm
var mysql      = require('./mysql_conn');

и это моя структура каталогов:

http://prntscr.com/1yfsej

Файл, для которого требуется модуль, находится в папке маршрутов, а файл — в папке db. Я продолжаю получать эту ошибку:

http://prntscr.com/1yfsjb

//Требуется коннектор mysql, который вы установили с помощью npm var mysql = require('./mysql');

var conn_conf = {хост: 'localhost', порт: 3306, пользователь: 'root', пароль: 'root', база данных: 'nutrition_tracker'}

      var connection = mysql.createConnection(conn_conf);

  exports.connection.connect(function(err) {
   if(err) console.log("Could not connect to DB");
    else{
    console.log("Connected to "+conn_conf.database+' on '+conn_conf.host );

    return connection
    }
});

person user2417731    schedule 19.10.2013    source источник
comment
//Требуется коннектор mysql, который вы установили с помощью npm var mysql = require('./mysql'); var conn_conf = {хост: 'localhost', порт: 3306, пользователь: 'root', пароль: 'root', база данных: 'nutrition_tracker'} var connection = mysql.createConnection(conn_conf); exports.connection.connect(функция(ошибка) { if(err) console.log(Не удалось подключиться к БД); else{ console.log(Подключено к +conn_conf.database+' на '+conn_conf.host ); вернуть соединение } });   -  person user2417731    schedule 20.10.2013


Ответы (1)


Вы можете «требовать» написанные пользователем модули без расширения js, например

var db = require('./database/db')

Для другого модуля вам нужно сослаться на mysql_conn в файл db.

//Require mysql connector that you installed with npm
var mysql      = require('../mysql_conn');
person Pradeep Mahdevu    schedule 20.10.2013
comment
Я делаю это: var db = require('./db/mysql_conn'), но все равно выдает ошибку, что mysql_conn не может быть найден. mysql_conn находится в папке db. Если мне требуется это в файле .js, который находится в папке с именем «маршруты», как мне правильно указать путь? вот так?: .(корень)/db(папка)/mysql_conn(файл)? - person user2417731; 20.10.2013
comment
Вы пробовали ../db/mysql_conn. Это относительный путь mysql_conn относительно текущего файла. - person Pradeep Mahdevu; 20.10.2013