Meteor中的Sendgrid导入问题

Meteor中的Sendgrid导入问题,meteor,sendgrid,sendgrid-api-v3,Meteor,Sendgrid,Sendgrid Api V3,我正在尝试在Meteor(服务器上)中使用sendgridnpm包: 继续获取此错误: (STDERR) packages\modules.js:961 (STDERR) const { (STDERR) ^ (STDERR) (STDERR) SyntaxError: Unexpected token { (STDERR) at Object.exports.runInThisContext (vm.js:53:16) (STDERR) at D:\myProjec

我正在尝试在Meteor(服务器上)中使用
sendgrid
npm包:

继续获取此错误:

(STDERR) packages\modules.js:961
(STDERR) const {
(STDERR)       ^
(STDERR)
(STDERR) SyntaxError: Unexpected token {
(STDERR)     at Object.exports.runInThisContext (vm.js:53:16)
(STDERR)     at D:\myProject\.meteor\local\build\programs\server\boot.js:331:30
(STDERR)     at Array.forEach (native)
(STDERR)     at Function._.each._.forEach (C:\Users\user1\AppData\Local\.meteor\packages\meteor-tool\1.5.2\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
有没有办法解决这个问题

更新:
package.json
包括以下依赖项:

"dependencies": {
    "@sendgrid/client": "^6.1.4",
    "@sendgrid/mail": "^6.1.4",
    "babel-runtime": "^6.20.0",
    "bcrypt": "^1.0.2",
    "body-parser": "^1.17.2",
    "card": "^2.3.0",
    "google-auth-library": "^0.10.0",
    "googleapis": "^21.3.0",
    "meteor-node-stubs": "~0.2.4",
    "moment": "^2.18.1",
    "pnotify": "^3.2.0",
    "shortid": "^2.2.8",
    "simpl-schema": "^0.3.1",
    "stripe": "^4.24.0"
}

我像这样使用它,发现它很好用

import sendgridModule from 'sendgrid';

let SEND_GRID_API_KEY = '';
try {
  SEND_GRID_API_KEY = Meteor.settings.env.SEND_GRID_API_KEY;
} catch (e) {
  // no-op
}
const sendgrid = sendgridModule(SEND_GRID_API_KEY);

我认为最好使用
import
而不是
require
,现在它可以用于有条件的导入

问题在于
SendGrid SDK v6
,但Meteor中捆绑的是
4.8.4

$ meteor node --version
v4.8.4
如中所述,更新Node.js会有所帮助,但显然Meteor无法做到这一点


我建议您使用这一个。

请显示您的
包.json
。而且,为了确保,当您删除此
require()
时,错误正在消失,对吗?是的,删除require()后,效果很好。您应该在
try
块中的语句末尾添加
.valueOf()
。通过这种方式,您将捕获Meteor.settings.env.SEND\u GRID\u API\u KEY的
未定义的
/
null
值。我认为这适用于sendgrid API v2,但在v3中,他们已将其拆分为多个模块。如果您查看github上的代码,@sendgrid/mail模块似乎没有命名的导出(只有默认的导出):谢谢-这可能是问题所在,尽管我不确定我是否理解根本的问题……导入/请求应该在节点4和6/8中都能工作。(如果存在直接版本检查,则可能会输出一条消息,指示“版本不匹配”,否?)@ASX问题在于对象分解,以及。
$ meteor node --version
v4.8.4