当我使用 .create(item( 方法从客户端(在浏览器中(执行插入时,我看到 1 次通过 websocket 或 REST 转到 feathersjs 的调用。我看到一个请求进入了Feathersjs。由于未知原因,我看到在MySql中创建的2行和日志中的2行显示:{"消息":"之后:name_of_service - 方法:创建","级别":"信息"}
使用续集4.42.0 和羽毛续集 6.0.1
从服务器代码中运行 create(( 时我没有问题,只能从客户端运行。
我发现 https://github.com/feathersjs-ecosystem/feathers-rethinkdb/issues/80 看起来是模拟的,但用于不同的数据库,并且解释不适合MySql。
我出于其他原因切换到MariaDB,但显然没有任何变化。
我正在使用FeathersJS v3.x并升级到v4.x以查看是否可以修复它。不。当我变通时,我一直在制作自己的插入方法,但使用内置的插入方法会很好。
我尝试在 REST 和 websocket 之间切换。
我的钩子:
const { authenticate } = require('@feathersjs/authentication').hooks;
module.exports = {
before: {
all: [ ], // authenticate('jwt') normally use, but deactivated to debug
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
},
after: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
},
error: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
}
};
服务:
const createService = require('feathers-sequelize');
const createModel = require('../../models/name_of_service.model');
const hooks = require('./name_of_service.hooks');
module.exports = function (app) {
const Model = createModel(app);
const paginate = app.get('paginate');
const options = {
Model,
paginate: {
default: 100,
max: 2000
}
};
app.use('/name_of_service', createService(options));
const service = app.service('name_of_service');
service.hooks(hooks);
};
我希望它在 MySql 表中插入 1 行。但得到了 2。我预计日志中有一行用于后钩子,但请参阅2。这种情况已经发生了几个月,我在想,嘿,也许我不是唯一一个。
谢谢大家的帮助。我发现了问题。 我通过更改来修复我的菜鸟错误:
app.configure(socketio());
app.configure(socketio(function(io) {io.sockets.setMaxListeners(555);}));
自:
app.configure(socketio(function(io) {io.sockets.setMaxListeners(555);}));