SyntaxError:意外的标识符

我是node.js的新手 我创build了一个名为app.js的文件,并使用express将该代码放在该文件中以切换模板引擎:

//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(){ 

你错过了一个右大括号

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

你应该使用一个编辑器,提供正确的语法高亮和一个代码linter – 就像jshint这会警告你这个,并警告你不正确的variables声明:

 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不明白的地方),并且通常发生意外的标识符之前 。 简单地说,它基本上意味着parsing器处于某种陈述的中间,根据语法规则,所遵循的事情对于特定情况是不可接受的。

我认为这是不正确的:

 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');