在 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 时出错的主要内容,如果未能解决你的问题,请参考以下文章
通过 cosmos:browserify 在 Meteor 中使用 npm 包