访问<script>中的对象的传递的ejs对象

时间:2019-01-08 21:29:03

标签: javascript arrays node.js ejs

我有以下路由器

  router.get(“ / users /:id / messages”,middleware.isLoggedIn,函数(req,res){
    //通过id查找用户
    Message.find({},function(err,message){
    如果(错误){
        console.log(err);
    }其他{
        User.findById(req.params.id,function(err,user){
            如果(错误){
                console.log(err);
            }其他{
                res.render(“ messages / new_convo”,{
                    用户:用户,
                    讯息:讯息
                });
            }
        });
    }
    });
    });
 
呈现以下页面的

我在这段代码中贯穿了每条消息,并将其保存到数组中

  <%var messages = []; %>
<%message.forEach(function(message){%>
  <%messages.push(message)%>
<%});%>
 

然后我定义了一个接受参数并在数组中找到匹配项的函数

  <%function findMatches(wordToMatch,消息){%>
<%返回messages.filter(message => {%>
<%const regex = new RegExp(wordToMatch,'gi'); %>
<%返回message.text.match(regex)|| message.receiver.username.match(regex); %>
<%}); %>
<%}; %>
 

然后我成功运行以下命令,输出所需结果。

  <%console.log(findMatches('dugi',消息))%>
 

现在,显然我可以将所有内容都放入脚本标签中,但是那样我将无法访问 messages 数组变量。

为了混合javascript和ejs,我尝试了以下操作:

  
<%});%>
 

这是 messages 数组的样子:

  [{发件人:{id:5c2cadd1a858f325f4501e1c,用户名:'dugi'},
    接收者:{id:5c3242956e5bc94f4469cb96,用户名:'mike'},
    _id:5c3514b19b359a69642d81e0,
    文字:“ Hello”,
    createdAt:2019-01-08T21:22:57.825Z,
    更新时间:2019-01-08T21:22:58.221Z,
    __v:0}]
[{发件人:{id:5c2cadd1a858f325f4501e1c,用户名:'dugi'},
    接收者:{id:5c3242956e5bc94f4469cb96,用户名:'mike'},
    _id:5c3514b19b359a69642d81e0,
    文字:“ Hello”,
    createdAt:2019-01-08T21:22:57.825Z,
    更新时间:2019-01-08T21:22:58.221Z,
    __v:0},
  {发件人:{id:5c2cadd1a858f325f4501e1c,用户名:'dugi'},
    接收者:{id:5c324232079e5e46b4c3a473,用户名:'olly'},
    _id:5c3514c09b359a69642d81e2,
    文字:“你好吗”,
    createdAt:2019-01-08T21:23:12.626Z,
    更新时间:2019-01-08T21:23:12.630Z,
    __v:0}]
[{发件人:{id:5c2cadd1a858f325f4501e1c,用户名:'dugi'},
    接收者:{id:5c3242956e5bc94f4469cb96,用户名:'mike'},
    _id:5c3514b19b359a69642d81e0,
    文字:“ Hello”,
    createdAt:2019-01-08T21:22:57.825Z,
    更新时间:2019-01-08T21:22:58.221Z,
    __v:0}]
 


我的问题是,如何从服务器端到前端提取此数组?这样我就可以在标签中操作它? JSON是可能的,但对于对象的对象来说似乎有点复杂。

0 个答案:

没有答案