Javascript 带有Socket.io侦听事件的FeatherJS处于静默状态
我觉得我已经很快就能让它工作了,但是我错过了最后一步。看起来我在严格遵循文档,但是有人能帮我理解我遗漏了什么吗。这是我的@angular服务:Javascript 带有Socket.io侦听事件的FeatherJS处于静默状态,javascript,node.js,socket.io,feathersjs,Javascript,Node.js,Socket.io,Feathersjs,我觉得我已经很快就能让它工作了,但是我错过了最后一步。看起来我在严格遵循文档,但是有人能帮我理解我遗漏了什么吗。这是我的@angular服务: declare var require: any const feathers = require('feathers/client'); const socketio = require('feathers-socketio/client'); const io = require('socket.io-client'); import { Inj
declare var require: any
const feathers = require('feathers/client');
const socketio = require('feathers-socketio/client');
const io = require('socket.io-client');
import { Injectable } from '@angular/core';
import { UserService } from './user.service';
@Injectable()
export class FeathersService {
socket = io.connect('http://localhost:3000/');
app = feathers().configure(socketio(this.socket));
status = this.app.service('realtime/user_status');
constructor(
public user: UserService,
) {
this.status.on('updated', ({status}) => {
console.log('your status was updated', status);
this.user.me.status = status;
});
}
updateStatus(status) {
const id = this.user.me._id;
this.status.update(id, {status});
}
}
这是我的路由器代码(子路由:/realtime)
最后是我的服务
const User = require('../models/user');
class UserService {
update(id, userProps, params, next) {
const userID = id;
User.findByIdAndUpdate({ _id: userID }, userProps, { 'new': true })
.then(user => {
console.log('userProps', userProps);
console.log('user >>>', user);
return Promise.resolve(user);
})
.catch(next);
}
}
module.exports = UserService;
您没有在服务方法中返回承诺
const User = require('../models/user');
class UserService {
update(id, userProps, params) {
const userID = id;
return User.findByIdAndUpdate({ _id: userID }, userProps, { 'new': true })
.then(user => {
console.log('userProps', userProps);
console.log('user >>>', user);
return user;
});
}
}
module.exports = UserService;
应该这样做。谢谢!!!事实上,我刚刚发现了这一点,哈哈,整个上午都在努力。安装了一个过梁并编写了一些测试,这样就不会浪费时间。但这是可怕的,现在它的工作
const User = require('../models/user');
class UserService {
update(id, userProps, params) {
const userID = id;
return User.findByIdAndUpdate({ _id: userID }, userProps, { 'new': true })
.then(user => {
console.log('userProps', userProps);
console.log('user >>>', user);
return user;
});
}
}
module.exports = UserService;