Nodejs 在Ubuntu 12.04中安装express出错,app.js中有乱码。
Nodejs 在Ubuntu 12.04中安装express出错,app.js中有乱码。
,/**, * Module dependencies., */,var express = require(‘express’), , routes = require(’./routes’), , user = require(’./routes/user’), , http = require(‘http’), , path = require(‘path’);,var app = express();,// all environments,app.set(‘port’, process.env.PORT || 3000);,app.set(‘views’, __dirname + ‘/views’);,app.set(‘view engine’, ‘jade’);,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’)));,// development only,if (‘development’ == app.get(‘env’)) {, app.use(express.errorHandler());,},app.get(’/’, routes.index);,app.get(’/users’, user.list);,http.createServer(app).listen(app.get(‘port’), function(){, console.log('Express server listening on port ’ + app.get(‘port’));,});,
中间缩进被替换成了两个空格。执行 node app.js
时
/home/other/microblog/app.js:1
,/**, * Module d
^
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
SyntaxError: Unexpected token ,
at Module._compile (module.js:429:25)
at Object..js (module.js:459:10)
at Module.load (module.js:348:32)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:41)
根据你提供的信息,app.js
文件中的问题可能是由于编码格式不正确导致的。通常情况下,JavaScript 文件应该使用 UTF-8 编码。如果文件中包含中文字符或其他非 ASCII 字符,而文件编码不是 UTF-8,则会导致 JavaScript 解释器无法正确解析这些字符,从而产生语法错误。
示例代码修正
首先,确保 app.js
使用 UTF-8 编码保存。你可以使用任何文本编辑器(如 VSCode、Sublime Text 或 Notepad++)将文件的编码转换为 UTF-8。例如,在 VSCode 中,可以通过以下步骤更改编码:
- 打开
app.js
文件。 - 点击右下角的编码格式(如
UTF-8
)。 - 选择
Reopen with Encoding
->UTF-8
。
接下来,检查 app.js
文件是否有任何意外的逗号(,
),这可能导致语法错误。以下是修正后的代码示例:
/**
* Module dependencies.
*/
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
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')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
检查和解决乱码问题
如果你在 app.js
文件中看到中文字符或其它非 ASCII 字符,确保这些字符没有被意外地转换成其他字符。例如,某些编辑器可能会将中文逗号(,)转换为英文逗号(,)。确保所有字符都正确无误。
总结
确保你的 app.js
文件使用正确的编码格式(UTF-8),并且没有多余的逗号等语法错误。通过以上步骤,你应该能够解决 node app.js
命令执行时出现的语法错误。如果问题仍然存在,请检查是否有其他潜在的编码或语法问题。
貌似那个逗号 有问题吧.
对啊。正常来说,语句不应该是这样的格式啊。
/*** Module dependencies. */
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user'),
http = require('http'),
path = require('path');
var app = express();
// all environments,app.set('port', process.env.PORT || 3000);
…应该是这样的格式才对吧。。。 不知道是安装出了问题,还是哪里的问题。
自己顶啊。求帮助~~~~
是 express -e 项目名称 这么创建的吗?
如果是想创建ejs的模板引擎 -t应该是不行了 要用-e 但是你的错误应该不是这个原因吧 我也是新手 你可以试试express -e microblog
同问
尝试升级node.js版本
其实问题造成的原因是nodejs的版本太低。所以需要自己编译nodejs,下面有一个解决方案 <pre> sudo apt-get install g++ curl libssl-dev apache2-utils sudo apt-get install git-core git clone git://github.com/ry/node.git cd node ./configure make sudo make install </pre> 执行这个脚本就可以了
的确是nodejs的版本太低,装一个n npm install -g n n latest 升级到最新版
根据你提供的错误信息和代码片段,问题可能出在 app.js
文件中存在多余的逗号(,
),这会导致 JavaScript 解析器报错。此外,乱码问题可能是由于文件编码不一致引起的。
示例代码修正
首先,我们需要删除多余的逗号。下面是修正后的 app.js
文件内容:
/**
* Module dependencies.
*/
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user'),
http = require('http'),
path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
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')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
乱码问题解决
确保你的 app.js
文件使用的是 UTF-8 编码格式。如果文件是以其他编码保存的,可能会导致乱码。你可以使用文本编辑器(如 VSCode、Sublime Text 或 Notepad++)来检查和修改文件编码。
总结
- 删除
app.js
中的多余逗号。 - 确保
app.js
文件使用 UTF-8 编码格式保存。
完成以上步骤后,重新运行 node app.js
应该可以正常工作。