Доступ express ответных данных на стороне клиента - PullRequest
0 голосов
/ 16 февраля 2020

В моем express маршрутизаторе я проверяю, действительны ли данные, вставленные в форму, затем, если это так, я отображаю другую страницу, передавая данные формы. Я хотел бы получить доступ к данным, которые я передаю на стороне клиента. В представлении chat.ejs у меня есть клиентский файл chatroom.js, я хочу получить доступ к данным без необходимости доступа к ним в теге сценария. Я думал об использовании Ajax, но единственный ответ, который я нашел здесь в StackOverflow, был помечен как неправильный, так как мне go об этом?

маршрутизатор. js

module.exports=function(app) {
    const express = require('express');
    const router = express.Router();
    const {check, validationResult} = require('express-validator');
    const {matchedData} = require('express-validator/filter');



    router.get('/', (req, res) => {
        res.render('index', {
            data: {},
            errors: {}
        })
    });

    router.post('/enter', [
        check('username')
            .isLength({min: 1})
            .withMessage('Username is required').trim(),
        check('room')//implement personalized check
    ], (req, res) => {
        const errors = validationResult(req);
        if (!errors.isEmpty()) {
            return res.render('index', {
                data: req.body,
                errors: errors.mapped()
            })
        }
        else {
            const data = matchedData(req);

            return res.render('chat',{
                user: data.username,
                room:data.room
            })


        }
    });





    return router;




    //MOVE TO SUPPORT
    function find(name) {
        return 1;
    }

}

на самом деле на стороне клиента пока ничего нет, поэтому публиковать мои взгляды кажется бесполезным. В качестве альтернативы я мог бы использовать Ajax на client.e js для обработки отправки формы, но я бы хотел сохранить это в чистоте и обрабатывать маршрутизацию с файлом маршрутизатора.

1 Ответ

0 голосов
/ 19 февраля 2020

В итоге я создал две глобальные переменные в теге сценария для моей страницы index.e js, например

  <script>
    var user = <%- JSON.stringify( user ) %>
    var room = <%- JSON.stringify(room)%>;
</script>

, и затем я смог получить к ним доступ в чате. Файл js, связанный ниже

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