首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: ENOENT,没有这样的文件或目录'/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript/app/models

错误: ENOENT,没有这样的文件或目录'/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript/app/models
EN

Stack Overflow用户
提问于 2015-09-13 04:43:51
回答 2查看 16.9K关注 0票数 3

我正在尝试运行一个项目。但它给了我一个错误

'/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript/app/models‘返回binding.readdir(pathModule._makeLong(path));^ Error: ENOENT,对象处的Object.fs.readdirSync (fs.js:666:18)没有这样的文件或目录。(/home/shubham/Documents/Node/lets-chat/app.js:33:14) at Module._compile (module.js:456:26) 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)在创业(node.js:119):16)在node.js:935:3国家预防机制错误!让-聊天@0.4.2开始:node app.js国家预防机制错误!退出状态8 npm错误!国家预防机制错误!在lets chat@0.4.2开始脚本中失败。国家预防机制错误!这很可能是一个问题的让-聊天包,npm错误!而不是国家预防机制本身。国家预防机制错误!告诉作者,这在您的系统上失败了: npm错误!节点app.js npm错误!你可以通过: npm错误获得他们的信息!npm所有者ls lets聊天npm错误!上面可能还有额外的日志输出。国家预防机制错误!SystemLinux3.16.0-49-通用npm!命令"/usr/bin/node“/usr/bin/ npm”启动“npm错误!cwd /home/shubham/Documents/Node/lets聊天npm错误!节点-v v0.10.37 node!npm -v 1.4.28 npm错误!代码ELIFECYCLE npm错误!国家预防机制错误!更多的日志记录详细信息可以在: npm!/home/shubham/Documents/Node/lets-chat/npm-debug.log npm!不确定代码0

app.js文件是:

代码语言:javascript
复制
'use strict';

process.title = 'letschat';

require('colors');

var _ = require('lodash'),
    fs = require('fs'),
    express = require('express.oi'),
    i18n = require('i18n'),
    bodyParser = require('body-parser'),
    cookieParser = require('cookie-parser'),
    compression = require('compression'),
    helmet = require('helmet'),
    http = require('http'),
    nunjucks = require('nunjucks'),
    mongoose = require('mongoose'),
    migroose = require('./migroose'),
    connectMongo = require('connect-mongo'),
    all = require('require-tree'),
    psjon = require('./package.json'),
    settings = require('./app/config'),
    auth = require('./app/auth/index'),
    core = require('./app/core/index');

var MongoStore = connectMongo(express.session),
    httpEnabled = settings.http && settings.http.enable,
    httpsEnabled = settings.https && settings.https.enable,
    models = all('./app/models'),
    middlewares = all('./app/middlewares'),
    controllers = all('./app/controllers'),
    app;

//
// express.oi Setup
//
if (httpsEnabled) {
     app = express().https({
        key: fs.readFileSync(settings.https.key),
        cert: fs.readFileSync(settings.https.cert)
    }).io();
} else {
    app = express().http().io();
}

if (settings.env === 'production') {
    app.set('env', settings.env);
    app.set('json spaces', undefined);
    app.enable('view cache');
}

// Session
var sessionStore = new MongoStore({
    url: settings.database.uri,
    autoReconnect: true
});

// Session
var session = {
    key: 'connect.sid',
    secret: settings.secrets.cookie,
    store: sessionStore,
    cookie: { secure: httpsEnabled },
    resave: false,
    saveUninitialized: true
};

// Set compression before any routes
app.use(compression({ threshold: 512 }));

app.use(cookieParser());
app.io.session(session);

auth.setup(app, session, core);

// Security protections
app.use(helmet.frameguard());
app.use(helmet.hidePoweredBy());
app.use(helmet.ieNoOpen());
app.use(helmet.noSniff());
app.use(helmet.xssFilter());
app.use(helmet.hsts({
    maxAge: 31536000,
    includeSubdomains: true,
    force: httpsEnabled,
    preload: true
}));
app.use(helmet.contentSecurityPolicy({
    defaultSrc: ['\'none\''],
    connectSrc: ['*'],
    scriptSrc: ['\'self\'', '\'unsafe-eval\''],
    styleSrc: ['\'self\'', 'fonts.googleapis.com', '\'unsafe-inline\''],
    fontSrc: ['\'self\'', 'fonts.gstatic.com'],
    mediaSrc: ['\'self\''],
    objectSrc: ['\'self\''],
    imgSrc: ['*']
}));

var bundles = {};
app.use(require('connect-assets')({
    paths: [
        'media/js',
        'media/less'
    ],
    helperContext: bundles,
    build: settings.env === 'production',
    fingerprinting: settings.env === 'production',
    servePath: 'media/dist'
}));

// Public
app.use('/media', express.static(__dirname + '/media', {
    maxAge: '364d'
}));

// Templates
var nun = nunjucks.configure('templates', {
    autoescape: true,
    express: app,
    tags: {
        blockStart: '<%',
        blockEnd: '%>',
        variableStart: '<$',
        variableEnd: '$>',
        commentStart: '<#',
        commentEnd: '#>'
    }
});

function wrapBundler(func) {
    // This method ensures all assets paths start with "./"
    // Making them relative, and not absolute
    return function() {
        return func.apply(func, arguments)
                   .replace(/href="\//g, 'href="./')
                   .replace(/src="\//g, 'src="./');
    };
}

nun.addFilter('js', wrapBundler(bundles.js));
nun.addFilter('css', wrapBundler(bundles.css));
nun.addGlobal('text_search', false);

// i18n
i18n.configure({
    directory: __dirname + '/locales',
    defaultLocale: settings.i18n && settings.i18n.locale || 'en'
});
app.use(i18n.init);

// HTTP Middlewares
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));

// IE header
app.use(function(req, res, next) {
    res.setHeader('X-UA-Compatible', 'IE=Edge,chrome=1');
    next();
});

//
// Controllers
//
_.each(controllers, function(controller) {
    controller.apply({
        app: app,
        core: core,
        settings: settings,
        middlewares: middlewares,
        models: models,
        controllers: controllers
    });
});

//
// Mongo
//

mongoose.connection.on('error', function (err) {
    throw new Error(err);
});

mongoose.connection.on('disconnected', function() {
    throw new Error('Could not connect to database');
});

//
// Go Time
//

function startApp() {
    var port = httpsEnabled && settings.https.port ||
               httpEnabled && settings.http.port;

    var host = httpsEnabled && settings.https.host ||
               httpEnabled && settings.http.host || '0.0.0.0';



    if (httpsEnabled && httpEnabled) {
        // Create an HTTP -> HTTPS redirect server
        var redirectServer = express();
        redirectServer.get('*', function(req, res) {
            var urlPort = port === 80 ? '' : ':' + port;
            res.redirect('https://' + req.hostname + urlPort + req.path);
        });
        http.createServer(redirectServer)
            .listen(settings.http.port || 5000, host);
    }

    app.listen(port, host);

    //
    // XMPP
    //
    if (settings.xmpp.enable) {
        var xmpp = require('./app/xmpp/index');
        xmpp(core);
    }

    var art = fs.readFileSync('./app/misc/art.txt', 'utf8');
    console.log('\n' + art + '\n\n' + 'Release ' + psjon.version.yellow + '\n');
}

function checkForMongoTextSearch() {
    if (!mongoose.mongo || !mongoose.mongo.Admin) {
        // MongoDB API has changed, assume text search is enabled
        nun.addGlobal('text_search', true);
        return;
    }

    var admin = new mongoose.mongo.Admin(mongoose.connection.db);
    admin.buildInfo(function (err, info) {
        if (err || !info) {
            return;
        }

        var version = info.version.split('.');
        if (version.length < 2) {
            return;
        }

        if(version[0] < 2) {
            return;
        }

        if(version[0] === '2' && version[1] < 6) {
            return;
        }

        nun.addGlobal('text_search', true);
    });
}

mongoose.connect(settings.database.uri, function(err) {
    if (err) {
        throw err;
    }

    checkForMongoTextSearch();

    migroose.needsMigration(function(err, migrationRequired) {
        if (err) {
            console.error(err);
        }

        else if (migrationRequired) {
            console.log('Database migration required'.red);
            console.log('Ensure you backup your database first.');
            console.log('');
            console.log(
                'Run the following command: ' + 'npm run migrate'.yellow
            );

            return process.exit();
        }

        startApp();
    });
});
EN

回答 2

Stack Overflow用户

发布于 2015-09-13 06:14:14

您必须在根目录中运行npm install,然后我发现有一个非常老的依赖项,您应该更改它,执行以下操作:

打开文件package.json并替换如下:

代码语言:javascript
复制
"passport": "^0.2.2",
"passport-http": "^0.2.2",

在这方面:

代码语言:javascript
复制
"passport": "~0.3",
"passport-http": "~0.3",

然后运行npm install

准备就绪时,运行npm start

效果很好。

票数 1
EN

Stack Overflow用户

发布于 2016-05-06 03:15:17

此错误可能是令人沮丧和不一致的,解决方案是在本地和全球卸载软件包,并以适当的版本重新安装或更新模块。

在不卸载的情况下升级模块有时会导致此错误。

代码语言:javascript
复制
npm uninstall <package>
npm uninstall <package> -g

npm install <package>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32546381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档