Javascript 意外标记:Express和nodejs
尝试加载脚本时,出现以下错误: 姓名:this.name,在线57Javascript 意外标记:Express和nodejs,javascript,node.js,express,Javascript,Node.js,Express,尝试加载脚本时,出现以下错误: 姓名: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) { th
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
方法中。当使用Name时:当在我的其他脚本中使用时,它正在工作,找不到问题不要像这样编写返回
return
{
id: this.id,
相反,写
return {
id: this.id,
JavaScript通过插入分号来完成
return
语句。不要这样写return
return
{
id: this.id,
相反,写
return {
id: this.id,
JavaScript通过插入分号来完成
return
语句。您正在处理自动分号插入:
而不是
return // ; a semicolon is automatically inserted here
{
使用
阅读更多:
return // ; a semicolon is automatically inserted here
{
使用
阅读更多:
{
应该与return
语句在同一行,因为JS解释器在同一行的return语句之后插入一个
我强烈建议完全停止使用分号,并学习ASI的工作原理,因为如果不使用分号,您将偶尔遇到这些错误…
{
应该与return
语句位于同一行,因为JS解释器会在同一行的return语句之后插入一个分号
我强烈建议完全停止使用分号,学习ASI是如何工作的,因为如果没有分号,您将偶尔遇到这些错误