javascript - Meteor 方法 404 错误但登录控制台

标签 javascript meteor

我调用 Meteor 方法但它显示错误消息:

Method 'users.insertotp' not found [404]

但不知何故 console.log 被执行了,为什么?

我做错了什么?

你可以在这里看到代码github .

文件:imports/api/db.js

export const Otp   = new Mongo.Collection('otp');
Meteor.methods({
    'users.insertotp' (otp) {
        // if(!this.userId) {
        //     throw new Meteor.Error('not-authorized');
        // }
        console.log('otp',otp);
        return Otp.insert({
            otp,
            userId: this.userId,
            updatedAt: moment().valueOf()
        });
    }
});

文件:imports/ui/Signup.js

Meteor.call('users.insertotp',1234);

最佳答案

您的 imports/api/db.js 文件已导入到客户端,但未导入到服务器。

你的 client/main.js 定义了一些路由,其中​​ imports/ui/Signup.js 导入了 imports/api/db.js 并立即调用方法。

另一方面,您的 server/main.js 仅导入 imports/api/users.js,而不会导入其他 api 文件。

因此您的客户端知道该方法,因此它能够在浏览器控制台中打印日志,这要感谢 Meteor 延迟补偿 a.k.a. optimistic ui a.k.a. 客户端 stub 。但是您的服务器不知道它,因此它以 404 错误响应。

只需在服务器主入口文件中导入 db 文件,Meteor 就会发挥它的魔力。

关于javascript - Meteor 方法 404 错误但登录控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56640722/

相关文章:

javascript - Meteor 应用程序在调用方法时崩溃

javascript - 如何在Meteor上实现网络摄像头和手机摄像头

javascript - vue中如何获取被点击的项目

javascript - 如何提取从API获取的JSON数据并传递到react-plotly?

javascript - 查找空 DOM 元素并使用 Jquery/Javascript 删除它们

javascript - 如何使用ajax接收到的数据?

linux - 在单核上运行 Meteor 应用程序

meteor - 在 Meteor 中,如何访问请求对象?

javascript - 使用 velocity、meteor 和 travis ci

javascript - 当 tabBarPosition 为 'top' 时在选项卡栏上显示图标,