访问快速响应数据客户端

时间:2020-02-16 08:50:39

标签: javascript node.js ajax express

在我的特快路由器中,我检查插入到表单上的数据是否有效,然后检查是否传递了表单数据。我想访问通过客户端的数据。在chat.ejs视图上,我有一个chatroom.js客户端文件,我想访问那里的数据而不必在script标签中访问它们。 我曾考虑过使用Ajax,但是我在StackOverflow上找到的唯一答案被标记为错误,那么我该如何解决?

router.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;
    }

}

到目前为止,实际上客户端没有任何内容,仅发布我的观点似乎没有用。另外,我可以在client.ejs上使用Ajax来处理表单提交,但是我想保持这种状态并使用路由器文件处理路由。

1 个答案:

答案 0 :(得分:0)

我最终在这样的index.ejs页面的脚本标签中创建了两个全局变量

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

然后我可以在下面链接的chatroom.js文件中访问它们