-2

我收到 SyntaxError: Unexpected token else in nodejs app in line 92 col7

在 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);
});

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

4

2 回答 2

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

于 2012-05-28T16:01:30.480 回答
0

尝试检查丢失的键入语法,如果主文件没有问题,请尝试检查另一个文件。

注意:如果你想在 if 之后使用 else,不要忘记将“ ; ”从 if 移动到最后一个 else。

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

如果你不移动“ ; ”,这与在没有 if 的情况下键入 else 是一样的,并且因为没有 if,它不会期望 else if 或 else 之后。

而且,如果您不想处理此类事情,只需将“ ; ”符号一起删除,但是...如果您真的需要使用它,只需将其从 ifs 中删除...

于 2020-07-28T20:10:55.267 回答