Как мне отделить MySQL от контроллера API?

Как мне переместить функцию, связанную с MySQL, в файл contractsService.js?

Я получаю сообщение об ошибке:

C:\code\firstdrafte2e\app.js:8 app.get('/contracts', GetContracts(req, res)); ^

ReferenceError: req is not defined

контрактыService.js

exports = function GetContracts(req, res) {
    new Promise(function (resolve, reject) {
        con.connect(function (err) {
            if (err) throw err;
            con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
                if (err) throw err;
                //console.info(result);
                resolve(result);
            });
        });
    }).then(rows => res.send(rows));
}

app.js

const express = require('express');
const app = express();


    app.use(express.static('client'));
    const config = require('./config')
    var GetContracts = require('./contractsService');

    app.get('/contracts', GetContracts());

    module.exports = app;
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, вы не передаете (req, res) своей функции GetContracts. Вы можете создать анонимную функцию, назначить ее переменной и экспортировать ее, как показано ниже.

контрактыService.js

  exports.GetContracts = function(req, res) {
new Promise(function (resolve, reject) {
    con.connect(function (err) {
        if (err) throw err;
        con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
            if (err) throw err;
            //console.info(result);
            resolve(result);
        });
    });
}).then(rows => res.send(rows));

}

App.js

const express = require('express');
const app = express();

app.use(express.static('client'));
const config = require('./config')
var GetContracts = require('./contractsService');

app.get('/contracts', GetContracts);

module.exports = app

Другие вопросы по теме