Экспресс JS REST API с MySQL - PullRequest
       3

Экспресс JS REST API с MySQL

0 голосов
/ 16 октября 2018

Я делаю упражнение с Express.js и MySQL.На данный момент у меня 4 файла.Ошибка:

TypeError: areas.getAreas is not a function
    at Object.<anonymous> (/--/--/--/src/routes/userRoutes.js:4:13)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/--/--/--/src/app.js:10:20)
    at Module._compile (module.js:653:30)

Но я уверен, что я объявляю переменную и функцию, поэтому не понимаю, почему это происходит.

Я пытался получить значениепеременная областей в файле userRoutes.js , но консоль просто показывает мне "{}".Я также попытался изменить синтаксис функции файла Area.js , записав его как функцию, а не как объект.

Основной файл, app.js и содержит:

const express = require('express');
const app = express();
const morgan = require('morgan'); 
const bodyParser = require('body-parser');
const mysql = require('mysql');

const connection = require('/--/--/--/db/connection.js');
const userRoutes = require('/--/--/--/routes/userRoutes.js');

app.set('port', process.env.PORT || 3000);

app.use(morgan('dev'));
app.use(bodyParser.json()); 

connection(mysql);    
userRoutes(app);

app.listen(app.get('port'), ()=> {
    console.log('server on port 3000');
});

Следующие файлы:

connection.js

'use strict';

module.exports = function connection(mysql){
    mysql.createConnection({
        host: 'http://x.x.x.x',
        user: 'xxxxxxx',
        password: 'xxxxxxx',
        database: 'xxxxxxx'
    })
};

областей.js

'use strict';

let areasModel = {};
areasModel.getAreas = (callback) => {
    if(connection) {
        connection.query(
            "SELECT * FROM areas",
            (err, rows) => {
                if(err) {
                    throw err;
                }
                else {
                    callback(null, rows);
                }
            }
        );
    }
};

module.exports = areasModel;

userRoutes.js

'use strict';

const areas = require('../models/areas');

module.exports = function (app) {
    app.get("/", (req,res)=>{
        areas.getAreas((err, data) => {
            res.json([]);
        });
    });
}

1 Ответ

0 голосов
/ 16 октября 2018

попробуйте импортировать connection.js в areas.js, возможно, потому что никогда не вводите в этом операторе if, возвращает неопределенное

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...