2017-08-04 119 views
-1

我在做一个编程课程,我试图运行命令节点server.js。然而,这是我得到的结果。意外的令牌非法运行node.js

node server.js 

/home/lalitp/webapp/imad-app/server.js:26 
console.log(`IMAD course app listening on port ${port}!`); 
     ^
SyntaxError: Unexpected token ILLEGAL 
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:902:3 

这是server.js文件:

var express = require('express'); 
var morgan = require('morgan'); 
var path = require('path'); 

var app = express(); 
app.use(morgan('combined')); 

app.get('/', function (req, res) { 
res.sendFile(path.join(__dirname, 'ui', 'index.html')); 
}); 

app.get('/ui/style.css', function (req, res) { 
res.sendFile(path.join(__dirname, 'ui', 'style.css')); 
}); 

app.get('/ui/madi.png', function (req, res) { 
res.sendFile(path.join(__dirname, 'ui', 'madi.png')); 
}); 


// Do not change port, otherwise your app won't run on IMAD servers 
// Use 8080 only for local development if you already have apache running on 80 

var port = 80; 
app.listen(port, function() { 
console.log(`IMAD course app listening on port ${port}!`); 
}); 

感谢您的帮助:)

+0

您使用的Node版本可能太旧了(查找带'node --version'的版本)。由于看起来您使用的是Linux,并且通常是Linux发行版的旧版Node.js版本,请查看以下有关安装更新版本的说明:https://nodejs.org/en/download/package-manager/ – robertklep

+0

由于@robertklep看起来像解决了问题 –

回答

2

您可能正在使用旧版本的Node.js,它不支持所谓的back-tick带引号的字符串(由`character包围)。

如果更改

console.log(`IMAD course app listening on port ${port}!`); 

console.log('IMAD course app listening on port ' + port + '!'); 

它应该工作。

返回引号的字符串用于内插变量,即将JavaScript表达式集成到字符串中。这使得使用+运算符连接各个位的变量更容易阅读,而不是连接每个位。

0

看来你使用ES5并没有ES6,所以你不能使用`令牌字符串:

console.log('IMAD course app listening on port ${port}!');