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)

11 回复

根据你提供的信息,app.js 文件中的问题可能是由于编码格式不正确导致的。通常情况下,JavaScript 文件应该使用 UTF-8 编码。如果文件中包含中文字符或其他非 ASCII 字符,而文件编码不是 UTF-8,则会导致 JavaScript 解释器无法正确解析这些字符,从而产生语法错误。

示例代码修正

首先,确保 app.js 使用 UTF-8 编码保存。你可以使用任何文本编辑器(如 VSCode、Sublime Text 或 Notepad++)将文件的编码转换为 UTF-8。例如,在 VSCode 中,可以通过以下步骤更改编码:

  1. 打开 app.js 文件。
  2. 点击右下角的编码格式(如 UTF-8)。
  3. 选择 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++)来检查和修改文件编码。

总结

  1. 删除 app.js 中的多余逗号。
  2. 确保 app.js 文件使用 UTF-8 编码格式保存。

完成以上步骤后,重新运行 node app.js 应该可以正常工作。

回到顶部