【问题标题】:Meteor JS error; Unexpected token ',' expected '['流星JS错误;意外的令牌','预期的'['
【发布时间】:2018-03-06 16:51:21
【问题描述】:

我对使用流星 JS 非常陌生,并且在尝试向电子邮件模板提供 mongo 记录时遇到了这个晦涩的错误。这是收到的确切错误

`错误阻止启动:

使用 ecmascript 处理文件时(针对目标 os.osx.x86_64): server/main.js:22:75: 意外令牌,预期] (22:75)

您的应用程序有错误。等待文件更改。`

提供了一个代码 sn-p 来显示我的服务器文件的样子。

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo'

Meteor.startup(() => {
  // code to run on server at startup
  var smtp = {
    username: 'nayyir.-----@----.com',
    password: '-----------------',
    server: '----.-----.com',
    port: ---
  }
  var vehicle = Mongo.collections('vehicles').findOne();
  var specifications = [];
  var user = Mongo.collections('users').findOne();
  process.env.MAIL_URL = 'smtps://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;

  Meteor.methods({
    sendEmail: function() {
      console.log('on server - sending email');
      SSR.compileTemplate('htmlEmail', Assets.getText('mitsubishi-email.html'));
      for (var i in vehicle['specifications']){
        var spec = Mongo.collections('specattributes').find('_id': vehicle['specifications'][i]['attr_id']);
        var specattributes = {};
        specattributes['spec_value'] = vehicle['specifications'][i].val.en;
        specattributes['spec_category'] = spec;
        specifications.push(specattributes);
      }
      var emailOptions = {
        firstname: user.firstname,
        lastname: user.lastname,
        specifications = specifications,
        improvements = vehicle.improvements,
        reasons = vehicle.reasonsToBuy
      }

      Email.send({
        to: '------@------.com',
        from: '------@------.com',
        subject: 'Test',
        html: SSR.render('htmlEmail', emailOptions),
      });
      console.log('on server - sent email');
    }
  })
});

非常感谢任何帮助!

TIA

【问题讨论】:

  • 也许能给我们提示一下哪一行是第 22 行?你想让人们更容易地帮助你。当然,人可以数,但我们不知道这是完全你的代码(也许你有更多或更少的空白行),无论如何,为什么要让人数?
  • 查看db.collections.find() 语法

标签: javascript mongodb email meteor ecmascript-6


【解决方案1】:

错误表明第 22 行有问题,如下所示:

var spec = Mongo.collections('specattributes').find('_id': vehicle['specifications'][i]['attr_id']);

我想你忘记了花括号,所以它应该是这样的:

var spec = Mongo.collections('specattributes').find({'_id': vehicle['specifications'][i]['attr_id']});

【讨论】:

  • 这个答案看起来是正确的(并且是正确的行),但在文件的后面还有一个语法不正确的地方。构造对象时,var emailOptions 不应包含“=”(赋值)运算符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-05
  • 2021-10-17
  • 2022-01-12
  • 2018-01-02
  • 2018-09-20
  • 2018-09-13
  • 2021-03-28
相关资源
最近更新 更多