【问题标题】:Unexpected token : Express and nodejs意外的令牌:Express 和 nodejs
【发布时间】:2014-01-08 14:36:08
【问题描述】:

尝试加载脚本时出现以下错误:

名称:this.name,在线 57

var redis = require('redis');
var db = redis.createClient();

module.exports = Card;
function Card(obj)
{
for(var key in obj)
{
    this[key] = obj[key];
}
}

Card.prototype.save = function(fn)
{
if(this.id)
{
    this.update(fn);
}
else
{
    var card = this;
    db.incr('card:ids', function(err, id)
    {
        if(err) return fn(err);
        card.id = id;
        user.update(fn);
    });
}
};

Card.prototype.update = function(fn)
{
var card = this;
var id      = card.id;
var name    = card.name;
var type    = card.type;
var manaCost = card.manaCost;
var attackPoints = card.att;
var magicPoints = card.magic;
var soulPoints = card.soul;
var cardImage = card.cardImage;
db.set('card:id:' + card.name, id, function(err) 
{
    if (err) return fn(err);
    db.hmset('card:' + id, name, type, manaCost, attackPoints, magicPoints, soulPoints, cardImage, function(err) 
    {
        fn(err);
    });
});
   };

   Card.prototype.toJSON = function()
    {
return 
{
    id: this.id,
    name: this.name,
    type: this.type,
    manaCost: this.manaCost,
    attackPoints: this.attackPoints,
    magicPoints: this.magicPoints,
    soulPoints: this soulPoints,
    cardImage: this.cardImage

}
};

var aquaDragon = new Card({
name: 'Aqua Dragon',
type: 'Rain',
manaCost: '6',
attackPoints: '4',
magicPoints: '5',
soulPoints: '6',
cardImage: '/images/Monsters/Aqua%20Dragon.png'
});

var fireElemental = new Card({
name: 'Fire Elemental',
type: 'Sun',
manaCost: '2',
attackPoints: '0',
magicPoints: '2',
soulPoints: '2'
cardImage: '/images/Monsters/Fire%20Elemental.png'
});

aquaDragon.save(function(err){
if (err) throw err;
console.log('user id %d', aquaDragon.id);
});

fireElemental.save(function(err){
if (err) throw err;
console.log('user id %d', fireElemental.id);
});

问题出在.toJSON 方法中。使用名称时:在我的其他脚本中使用时找不到问题

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    您正在处理自动分号插入:

    而不是

    return // ; a semicolon is automatically inserted here
    {
    

    使用

    return {
    

    阅读更多:

    【讨论】:

      【解决方案2】:

      不要这样写return

      return 
      {
          id: this.id,
      

      改为写

      return {
          id: this.id,
      

      JavaScript 通过插入分号来结束return 语句。

      【讨论】:

        【解决方案3】:

        { 应该与return 语句在同一行,因为 JS 解释器在同一行的 return 语句之后插入一个。

        我强烈建议完全停止使用分号并了解 ASI 的工作原理,因为如果没有分号,您有时会遇到这些错误...

        【讨论】:

          猜你喜欢
          • 2018-08-09
          • 1970-01-01
          • 1970-01-01
          • 2016-12-12
          • 2016-09-04
          • 2018-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多