Задать вопрос
@titronfan

Как экспортировать модуль в Node.js?

Здравствуйте!
Есть 2 файла (index.js, который запускает все приложение и func.js).
Нужно экспортировать файл func.js как модуль в index.js.

Делаю я сейчас так (все работает), хотя понимаю, что это не верно.

В упрощенном виде:

index.js
var express = require('express');
var mysql = require('mysql');
var funcs = require('./func');

var app = express();

// DB
var db = mysql.createConnection({
	host     : 'localhost',
	user     : 'usr',
	password : '123',
	database : 'customers'
});
db.connect();

app.use(funcs);

app.get('/customer', function (req, res) {
	db.query('SELECT id, name FROM customers WHERE id='+ req.query.id, function(err, row, fields) {
			if (!err) {
				res.send(row[0]);
			}
			else {
				console.log(err);
			}
		}
	);
});


func.js
var express = require('express');
var mysql = require('mysql');

var app = express();

// DB
var db = mysql.createConnection({
	host     : 'localhost',
	user     : 'usr',
	password : '123',
	database : 'customers'
});
db.connect();

module.exports = app;

app.get('/users', function (req, res) {
	db.query('SELECT id, name FROM users WHERE id='+ req.query.id, function(err, row, fields) {
			if (!err) {
				res.send(row[0]);
			}
			else {
				console.log(err);
			}
		}
	);
});

app.get('/users-other', function (req, res) {
	db.query('SELECT id, name FROM users_other WHERE id='+ req.query.id, function(err, row, fields) {
			if (!err) {
				res.send(row[0]);
			}
			else {
				console.log(err);
			}
		}
	);
});


Помогите пожалуйста советом или примером как нужно сделать так, чтобы в файле func.js не нужно
было подключать снова модули express и mysql.
Заранее спасибо.
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@titronfan Автор вопроса
Сделал так, по совету Владлен Ultra.

index.js
var express = require('express');
var app = express();
require('./func')(app);
app.listen(3000);

app.get('/customer', function (req, res) {
  res.send('customers!');
});


func.js
module.exports = function (app) {

    app.get('/', function (req, res) {
        res.send('none!');
    });

    app.get('/user', function (req, res) {
		res.send('users!');
    });

    app.get('/users', function (req, res) {
		res.send('users others!');
    });

};


Но все равно в сомнениях.. верно это или нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы