打开 shift node.js - 使其 运行 在启动时成为不同的启动脚本
Open shift node.js - make it run a different start script on the startup
我在服务器上收到此错误,因为我的启动脚本结构(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"
}
}
请指教开启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;
}
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);
我在服务器上收到此错误,因为我的启动脚本结构(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"
}
}
请指教开启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;
}
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);