SyntaxError:nodejs中的意外令牌

时间:2012-05-28 14:34:16

标签: node.js

我在第92行col7

中的nodejs app中收到了SyntaxError:Unexpected token else app.js中的

var express = require('express'), everyauth = require('everyauth');

everyauth.debug = true;

var usersByLogin = {
  'krishna': {
    login: 'krishna',
    email: 'krishna@blogab.com',
    password: 'krishna'
  }
};

everyauth
  .password
  //.loginWith('email')
  .loginWith('login')
  .getLoginPath('/login')
  .postLoginPath('/login')
  .loginView('bcore/login.jade')
  .loginLocals( function (req, res, done) {
    setTimeout( function () {
      done(null, {
        title: 'blogab - login'
      });
    }, 200);
  })
  .authenticate( function (login, password) {
    var errors = [];
    if (!login) errors.push('Missing login');
    if (!password) errors.push('Missing password');
    if (errors.length) return errors;
    var user = usersByLogin[login];
    if (!user) return ['Login failed'];
    if (user.password !== password) return ['Login failed'];
    return user;
  })
  .getRegisterPath('/register')
  .postRegisterPath('/register')
  .registerView('bcore/register.jade')
  .registerLocals( function (req, res, done) {
    setTimeout( function () {
      done(null, {
        title: ' Register'
      });
    }, 200);
  })
  .extractExtraRegistrationParams( function (req) {
    return {
      email: req.body.email
    };
  })
  .validateRegistration( function (newUserAttrs, errors) {
    var login = newUserAttrs.login;
    if (usersByLogin[login]) errors.push('Login already taken');
    return errors;
  })
  .registerUser( function (newUserAttrs) {
    var login = newUserAttrs[this.loginKey()];
    return usersByLogin[login] = newUserAttrs;
  })

  .loginSuccessRedirect('/admin/')
  .registerSuccessRedirect('/admin/');

var app = express.createServer(
  express.bodyParser(),
  express.static(__dirname + "/public"),
  express.cookieParser(),
  express.session({ secret: 'htuayreve'}),
  everyauth.middleware()
);

app.configure( function () {
  app.set('view engine', 'jade');
});

app.get('/', function (req, res) {
  res.render('templates/default/index', {
    title: 'blogab',
    users: JSON.stringify(usersByLogin, null, 2)
  });                           
});

app.get('/login', function (req, res) {
  res.render('bcore/login', {
    title: 'login',
    users: JSON.stringify(usersByLogin, null, 2)
  });
});

app.get('/admin/newpost', function (req, res) {
  res.render('bcore/newpost', {
    title: 'Blogab-newpost',
    users: ';
    JSON.stringify(usersByLogin, null, 2)
  });
});

app.get('/admin/', function (req, res) {
  res.render('bcore/admin', {
    title: 'core',
    users: JSON.stringify(usersByLogin, null, 2)
  });
});

everyauth.helpExpress(app);

app.listen(1224, function(){
  console.log("blogab is  running on port %d in %s mode", app.address().port,  app.settings.env);
});

我不知道我做错了什么我使用everyauth之前重定向url是\它工作得很好但是当我改变它不能正常工作

2 个答案:

答案 0 :(得分:1)

查看第94行......这一位

app.get('/admin/newpost', function (req, res) {
  res.render('bcore/newpost', {
    title: 'Blogab-newpost',
    users: ';
    JSON.stringify(usersByLogin, null, 2)
  });
});

这一点

users: ';

应该是

user : ''

它可能认为它是内联if / else

答案 1 :(得分:0)

尝试检查是否遗漏了键入的语法,如果主文件没有问题,请尝试检查另一个文件。

注意:如果在ifs之后尝试使用else,请不要忘记将“ ; ”从ifs移到最后的else。

if (...) {...};         
//            ^ move this
if (...) {...}          
else if (...) {...}     
else {...};             
//        ^to here, this happens to the best of us that uses ;

如果您不移动“ ; ”,则与不使用ifs键入else一样,并且因为没有ifs也不希望紧随其后的else。

,如果您不想处理此类问题,只需将“ ; ”符号全部删除,但是...如果您确实需要使用它,则将其从如果......