Использовать 1 файл маршрута и передавать в разные переменные - PullRequest
0 голосов
/ 05 марта 2020

Я работаю над приложением вывесок и хотел бы использовать 1 единственный файл маршрутов, в котором есть только 2 маршрута '/' и '/ update', однако я хочу направить несколько URL-адресов в этот файл маршрута и передать переменную в изменить содержимое маршрута. «/ Mainscreen» прекрасно работает, но когда я go в «/ east-end», он обслуживает содержимое «/ mainscreen». Я все еще изучаю Node.js и Express, так что я на 100% уверен, что это ошибка ID10T, но это просто забавный проект для изучения, но я застрял здесь.

вот что у меня есть

Раздел маршрута в приложении. js

// Screen Routes (io, List ID from key file, name of the screen/public folder)
app.use('/mainscreen', require('./routes/signage')(io, keys.mainListId, 'main'));
app.use('/east-end', require('./routes/signage')(io, keys.eastEndListId, 'east-end'));

Я передаю IO для socket.io для обновления sh страница, на которой запускается «/ update», а также уникальный ключ для обновления каждого экрана. Последнее, что я добавляю, - это имя папки / экрана publi c, чтобы она знала, откуда взять содержимое, а также из какого браузера (сокета) отправляет команду браузера refre sh.

Heres './routes/signage'

const express = require('express');
const router = express.Router();
const contentManagement = require('../tools/content-management');
const keys = require('../config/keys');



module.exports = function (io, listId, screen) {
    io.sockets.on('connection', function (socket) {
        console.log('New Socket Connection', socket.id);

    });

    router.get('/', (req, res) => {
        var mediaList = contentManagement.listImages(screen);
        res.render('signage', { urls: mediaList, screen });


    });

    router.get('/update', (req, res) => {

        contentManagement.getContent(screen, keys.mainToken, keys.mainKey, listId);
        res.send('Success! ' + listId)

        setTimeout(() => {
            io.sockets.emit(screen)
        }
            , 10000);


    });
    return router;
}

, если я делаю console.log(listId) внутри моего module.exports, при запуске приложения регистрируются оба идентификатора в моем терминале, но если Я делаю это в '/update' всякий раз, когда я захожу в '/ east-end / update', он помещает идентификатор основного списка, а не идентификатор EastEnd в моем терминале. Надеюсь, это имеет смысл.

или я застрял, просто скопировав маршрут и назвав копии для каждого экрана, чтобы в папке маршрутов у меня было 10 маршрутов, если я передаю контент на 10 экранов?

Из-за моей неопытности с Node и express я бы догадался, как я делаю раздел маршрутов в моем приложении. Файл js не является правильным способом сделать это, поэтому любая помощь будет оценена! :)

...