vuejs从soket.io发出麻烦

时间:2018-03-26 11:42:58

标签: node.js vue.js socket.io-1.0

我试图通过套接字从服务器获取数据。 但是vue没有填满表,因为客户端有一个数组,服务器返回对象。

服务器侧

...
const r = require('rethinkdb');
const io = socketIO(server);
r.connect(db)  
    .then(conn => {
        io.on('connection', (client) => {
             r.table('messages')
                 .run(conn)
                 .then(cursor => {
                     cursor.each((err, message) => {
                         io.sockets.emit('messages', message);
                     });
                 });

client-vue

<template>
....
 <table>
 <tr>
   <th>name</th>
   <th>message</th>
   <th>date</th>
 </tr>
 <tr v-for="object in objects" :key="object.id">
   <td>{{object.id}}</td>
   <td>{{object.name}}</td>
   <td>{{object.message}}</td>
   <td>{{object.date}}</td>
 </tr>
 </table>
    ...
    <script>     
    export default {
      name: 'App',
      data () {
        return {
          objects: []
        }
      },
      methods: {
        send () {
          this.$socket.on('test',message => {
              this.objects = message  
              console.log(message)
              })                      
        }
      }

在控制台中:  info 但是vue需要一组对象:  error myrepo(全码) https://github.com/EvgenJin/REVN_project

1 个答案:

答案 0 :(得分:0)

您应该只使用数组上的推送。

this.$socket.on('test', message => {
    this.objects.push(message)
}) 

因为在HTML中你需要一个对象数组。