【问题标题】:Open shift node.js - make it run a different start script on the startup打开 shift node.js - 让它在启动时运行不同的启动脚本
【发布时间】:2016-03-11 18:26:45
【问题描述】:

我在服务器上收到此错误,因为我的启动脚本有不同的结构(webstorm 配置)。

Error: Cannot find module '/var/lib/openshift/56c74bc61a003e5c2200015e/app-root/runtime/repo/server.js'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:134:18)
    at node.js:962:3
DEBUG: Program node server.js exited with code 1
DEBUG: Starting child process with 'node server.js'

我的 package.json 是(我已经手动添加了 "main": "./bin/www")

{
  "name": "app",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "main": "./bin/www",
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jade": "~1.11.0",
    "morgan": "~1.6.1",
    "serve-favicon": "~2.3.0"
  }
}

请建议在配置之上运行 open shift。

编辑

实际上添加"main": "./bin/www" 给出了这个错误

DEBUG: Starting child process with 'node ./bin/www'
Port 8080 is already in use
DEBUG: Program node ./bin/www exited with code 1
DEBUG: Starting child process with 'node ./bin/www'
Port 8080 is already in use
DEBUG: Program node ./bin/www exited with code 1
DEBUG: Starting child process with 'node ./bin/www'
Port 8080 is already in use
DEBUG: Program node ./bin/www exited with code 1
DEBUG: Starting child process with 'node ./bin/www'

我的 www 文件

var port = normalizePort(process.env.OPENSHIFT_NODEJS_PORT || '3000');
app.set('port', port);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}

【问题讨论】:

    标签: node.js openshift openshift-enterprise


    【解决方案1】:

    Openshift 默认启动 'server.js' 文件。您可以通过将 use_npm 文件添加到 openshift 的标记目录来避免这种情况。或者您可以将您的www 文件内容复制到server.js 并从它开始。

    示例内容:

    #!/usr/bin/env node
    
    /**
     * Module dependencies.
     */
    
    var app = require('./app.js');
    var debug = require('debug')('app:server');
    var http = require('http');
    
    /**
     * Get port from environment and store in Express.
     */
    
    var port = normalizePort(process.env.OPENSHIFT_NODEJS_PORT || '3000');
    app.set('port', port);
    var ip = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";
    app.set('ip', ip);
    
    /**
     * Create HTTP server.
     */
    
    var server = http.createServer(app);
    
    /**
     * Listen on provided port, on all network interfaces.
     */
    
    server.listen(port, ip);
    

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多