Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular 8和sailsJs在套接字io请求中出错_Javascript_Node.js_Socket.io_Sails.js_Angular8 - Fatal编程技术网

Javascript angular 8和sailsJs在套接字io请求中出错

Javascript angular 8和sailsJs在套接字io请求中出错,javascript,node.js,socket.io,sails.js,angular8,Javascript,Node.js,Socket.io,Sails.js,Angular8,我是socket.io的新手,在Angular中,我向sailsJS(后端)发出了一个套接字请求,但在请求后,我得到了以下错误: Sails的响应是:错误:express4/Sails v1中不再支持使用res.json()。请改用res.status(statusCode).json(body) 在角度上: import { Injectable } from '@angular/core'; import * as io from 'socket.io-client'; import * a

我是socket.io的新手,在Angular中,我向sailsJS(后端)发出了一个套接字请求,但在请求后,我得到了以下错误:

Sails的响应是:错误:express4/Sails v1中不再支持使用
res.json()
。请改用
res.status(statusCode).json(body)

在角度上:

import { Injectable } from '@angular/core';
import * as io from 'socket.io-client';
import * as sailsIOClient from 'sails.io.js';
import {Observable} from 'rxjs';
@Injectable({
  providedIn: 'root'
})
export class SocketIoService {
  private socket = sailsIOClient(io);
  constructor() {
    this.socket.sails.url = 'http://localhost:1337';
  }

  sendRequest() {
    console.log('call sokcet')
    this.socket.socket.get('/socket', (resData) => {
      console.log('Sails responded with: ', resData);
    });
  }
}
在sails js中,我有以下配置和代码: 在routes.js中:

'get /socket': 'TaskController.Index',
在TaskController.js中:

module.exports = {
  Index: function (req, res) {
    console.log('in sails socket', req.isSocket);
    if( !req.isSocket) {
      return res.badRequest();
    }
    sails.sockets.join(req.socket, 'task');
    sails.sockets.broadcast('task', 'list');
    // sails.sockets.blast('task', 'entry');
    return res.ok();
  }
}
在socket.js中:

transports: ['polling', 'websocket'],

我通过更改令牌授权功能中的“返回码”解决了上述问题: 解析代码:

return res.status(401).json({err: 'No Authorization header was found'});
旧代码(抛出错误):

 return res.json(401, {err: 'No Authorization header was found'});