Сцепление маршрутов в express? - PullRequest
0 голосов
/ 04 марта 2020

Если пользователь нажимает на определенный ресторан, я хочу, чтобы он отображал отзывы об этом ресторане, а также контроллер, модель и все, что работает для обзора. Можно ли сказать, как /all/:id, чтобы получить отзывы?

Я думаю, мне нужно будет сделать новый взгляд. Это решит проблему, или есть способ сделать это, даже не добавляя новое представление?

Спасибо, и извините за вопросы nooby; Я новичок в Express и узле.

app. js

const express = require('express'),
app = express(),
es6Renderer = require('express-es6-template-engine'),
rootController = require('./routes/restaruants');
allRestaruantsController = require('./routes/allTheRestaruants');
reviewController = require('./routes/reviewController');

app.engine('html', es6Renderer);
app.set('views','views');
app.set('view engine', 'html');

app.listen(9000, () => {
    console.log('Power level over 9000');
});

app.use('/', rootController);
app.use('/all', allRestaruantsController);
app.use('/all/:id', reviewController);

reviewController. js

const express = require('express'),
    router = express.Router(),
    reviewModel = require('../models/reviewModel');

router.get('/'), async (req, res) => { 
    let restaruantData = [];
    restaruantData = await reviewModel.getReviewsById()


    res.render ('template', {
        locals: {
            title: 'All The Restaruants',
            dataArray: restaruantData
        },
        partials : {
            partial: 'partial-all'
        }
});
}

module.exports = router;

reviewModel. js

const db = require('./conn')

class ReviewByList {
    constructor(review) {
        this.review = review;
    }

    static async getReviewsById() {
        try {
            const response = await db.any(`SELECT restaruant.name, review.review FROM restaruant INNER JOIN review ON restaruant.id = review.restaruant_id`);
            console.log(response)
            return response;
        }
        catch (error) {
            console.error('ERROR', error);
            return error;
        }
    }
}

module.exports = ReviewByList;

Также вот часть, которую он использует:

<H1> Restaurants around the block</H1>
<ul>
    ${dataArray.map(item =>
        `<li><a class="all" href ='/all/${item.id}'>${item.name}</a> Address: ${item.address}</li>`
    ).join('')}
</ul>

Я подтвердил, что обзор работает в частичном.

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