在linux上运行节点(express)产生错误:产生EACCES

我正在使用Expressjs构build一个节点应用程序,我试图在新安装的Ubuntu上运行我的节点应用程序(我刚刚安装了git和node v 0.10.19)。

不幸的是,我试图在terminal中运行应用程序时出现以下错误:

Events.js:72 throw er; // unhandled 'error' event Error: spawn EACCES 

我在端口3000上运行,我正在使用sudo。 我也尝试作为根,我也玩过1024以上的门槛上的不同端口。

该应用程序只是基本Expressjs和我使用默认的方法来打开应用程序套接字:

  app.listen(3000); 

我是一个Linux noob所以任何帮助表示赞赏。 顺便说一下,该应用程序在Windows上工作的很好。

基本的服务器代码:

  var express = require('express') , app = express() , fs = require ('fs') , lingua = require('lingua'); process.env.NODE_ENV = 'development'; app.configure(function(){ app.set('view engine', 'jade'); app.set('views', __dirname + '/views'); app.setMaxListeners(100); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.static(__dirname + '/public')); app.use(express.favicon(__dirname + '/public/core/favicon.ico')); app.use(lingua(app, { defaultLocale: 'translation_', storageKey: 'lang', path: __dirname+'/public/translations/', cookieOptions: { httpOnly: false, expires: new Date(Date.now(-1)), secure: false } })); app.use(app.router); app.locals.pretty = true; }); app.configure('development', function(){ app.enable('verbose errors'); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.disable('verbose errors'); app.use(express.errorHandler()); }); require('./lib/routing/routing')(app,{ verbose: !module.parent }); app.listen(3000); 

您可以通过安装npm install mediacenterjstesting

我通过正确设置文件权限解决了这个问题。

它通过设置读/写和执行权限来工作。

  sudo chmod -R a+rwx APPNAME/file