2015-02-10 2 views
1

Я новичок в node.js. Я создал файл с именем app.js и поместить этот код в файле с помощью экспресс, чтобы переключить двигатель шаблона:SyntaxError: Неожиданный идентификатор

//module dependencies 

var express = require('express'); 
    routes = require ('./routes'); 
    user = require ('./routes/user'); 
    http= require ('http'); 
    path = require ('path'); 

var exphbs = require ('express3-handlebars'); 
var app = express(); 

//all environement 
app.set ('port', process.env.PORT || 3000); 
app.set('views', __dirname +'/views'); 
//app.set('view engine','jade'); 
app.engine('handlebars',exphbs({defaultLayout :'main'})); 
app.set('view engine ','handlebars'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname,'public'))); 

//developpement only 
if ('developpement' == app.get('env')){ 
    app.use(express.errorHandler()); 
} 

//app.get('/', routes.index); 
//app.get ('/user' , user.list); 
app.get('/' , function(req,res) { 
    res.render('home'); 
} 
http.createServer(app).listen(app.get('port'), function(){ 
    console.log("Express server listening on port " + app.get('port')); 
}); 

затем я запустить приложение и я получаю эту ошибку:

http.createServer(app).listen(app.get('port'), function(){ 
^^^^ 
SyntaxError: Unexpected identifier 
    at Module._compile (module.js:439:25) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:929:3 

этой линии вызывает ошибку:

http.createServer(app).listen(app.get('port'), function(){ 
+0

отсутствует ')'. plz закрыть. –

+0

где именно ???? –

+0

Одна строка над ошибкой. –

ответ

4

У вас не хватает закрывающей фигурной скобки в

app.get('/' , function(req,res) { 
    res.render('home'); 
}) // <-- the last one 

Вы должны использовать редактор, который обеспечивает правильный синтаксис выделение и код linter-like jshint, который предупредит вас об этом, а также предупредит вас о неправильных объявлениях переменных:

var onevar = 'value'; // <-- superbad! You just ended this statement! 
    another = 'val2'; // <-- now this variable leaked into global scope! 
// Proper: 
var onevar = 'value'; 
var another = 'val2'; 
// Also proper: 
var onevar = 'value', 
    another = 'val2'; 

SyntaxError: Unexpected identifier всегда опечатка (или вы пытаетесь сделать что-то JavaScript не понимает) где-то в вашем коде и обычно бываете перед неожиданным идентификатором. Обоснованный, это в основном означает, что синтаксический анализатор находился в середине какого-либо утверждения и, согласно правилам грамматики, следующая вещь не была приемлемой для этой конкретной ситуации.

+0

ok Я исправляю код, но я получил эту ошибку: Ошибка: не удается найти модуль ./routes ' в Function.Module._resolveFilename (module.js: 338: 15 at Function.Module._load (module. js: 280: 25) на Module.require (модуль.js: 364: 17) по требованию (module.js: 380: 17) у объекта. (C: \ nodeapps \ test \ app.js: 4: 14) at Module._compile (module.js: 456: 26) –

+0

Файл должен находиться в том же каталоге, в котором он нужен. Кажется, это не так ... –

+0

нет нет, он находится в том же каталоге –

1

Я думаю, что это неправильный:

var express = require('express'); 
    routes = require ('./routes'); 
    user = require ('./routes/user'); 
    http= require ('http'); 
    path = require ('path'); 

Я думаю, вы должны попробовать что-то вроде этого:

var express = require('express'), 
    routes = require ('./routes'), 
    user = require ('./routes/user'), 
    http= require ('http'), 
    path = require ('path'); 

Или

var express = require('express'); 
var routes = require ('./routes'); 
var user = require ('./routes/user'); 
var http= require ('http'); 
var path = require ('path'); 
+0

Это не синтаксическая ошибка. –

+0

что об этой ошибке dave: Ошибка: не удается найти модуль './routes' в Function.Module._resolveFilename (module.js: 338: 15 в Function.Module._load (module.js: 280: 25) в Module.require (module.js: 364: 17) по требованию (module.js: 380: 17) в Object. (C: \ nodeapps \ test \ app.js: 4: 14) в Module._compile (module.js: 456 : 26) –

Смежные вопросы