在 Meteor JS 中使用 require 时出错

Posted

技术标签:

【中文标题】在 Meteor JS 中使用 require 时出错【英文标题】:Error when use require in Meteor JS 【发布时间】:2017-06-04 18:53:07 【问题描述】:

例如,当我在我的应用程序中使用任何包时(流星添加 outatime:jwt-simple ) 我试过var jwt = Meteor.require('jwt-simple')。 在控制台有错误 OAuth 服务器中的错误:Meteor.require 不是函数。使用包的正确方法是什么?我在服务器端文件中使用。在服务器端和客户端使用 require 有区别吗?

【问题讨论】:

【参考方案1】:

根据包文档,你是这样引用它的:

var jwt = require('jwt-simple');

这个包也可以在 npm 上使用,这是现在使用包的首选方式(使用 Atmosphere,您依赖于来自于大气包作者的更新,而使用 npm,您可以在它们发布时获取更新)

所以您应该能够按照 Meteor 文档了解如何使用它们:

使用 npm 包

要在应用程序的文件中使用 npm 包,您只需 导入包名:

import jwt from 'jwt-simple';

// this is equivalent to the standard node require (if the above doesn't work):
const jwt = require('jwt-simple');

来源:https://guide.meteor.com/using-npm-packages.html

无论哪种方式,您都应该能够使用 jwt 来做事,例如:

// encode 
var token = jwt.encode(payload, secret);

【讨论】:

您好,谢谢。我使用自己的包进行身份验证(例如:accounts-github)。在服务器端我想使用 jwt-decode。我在顶部写了import jwt from 'jwt-simple';,在我的一个函数中写了const jwt = require('jwt-simple');,但我收到了这个错误:error from CLI 如果它抱怨“import”,这意味着它不支持 ES6 - 一些服务器函数运行纯 javascript,所以你应该在那里使用“require”语法 你的意思是写:Meteor.require('jwt-simple'),但这会导致错误(【参考方案2】:

我在使用不同的库时遇到了同样的问题,我使用 Meteor.npmRequire 而不是 require 来解决问题。请尝试 Meteor.npmRequire('jwt-simple')。

最好的问候,

恐龙

【讨论】:

以上是关于在 Meteor JS 中使用 require 时出错的主要内容,如果未能解决你的问题,请参考以下文章

我如何在Meteor中使用pushjs?

Meteor 中的单元测试应该放在哪里?

通过 cosmos:browserify 在 Meteor 中使用 npm 包

如何在 javascript (meteor.js) 中操作返回的 mongo 集合/游标?

错误:捆绑 Meteor.js 应用程序时没有此类包

Meteor.js 应用程序不支持 IE 9