簡體   English   中英

語法錯誤:nodejs 中出現意外的其他令牌

[英]SyntaxError: Unexpected token else in nodejs

我收到 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 \\它工作正常但是當我改變它時它無法正常工作

查看第 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

嘗試檢查是否遺漏了鍵入的語法,如果主文件沒有問題,請嘗試檢查另一個文件。

注意:如果您嘗試在 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 if 或 else 緊隨其后。

而且,如果您不想處理此類事情,只需將“ ; ”符號一起刪除,但是...如果您確實需要使用它,只需將其從 ifs 中刪除...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM