Javascript NodeJS中的错误是什么

Javascript NodeJS中的错误是什么,javascript,node.js,openshift,Javascript,Node.js,Openshift,我在NodeJS 0.10中的应用程序正在我的节点localhost(127.0.0.1)中运行,我的链接不侦听,发现OpenShift!但是没有运行我的脚本,错误:(),我的GitHub()…帮助我 我的代码: var http = require('http'), fs = require('fs'), util = require('util'); http.createServer(function (req, res) { var path = __dirname + '

我在NodeJS 0.10中的应用程序正在我的节点localhost(127.0.0.1)中运行,我的链接不侦听,发现OpenShift!但是没有运行我的脚本,错误:(),我的GitHub()…帮助我

我的代码:

var http = require('http'),
  fs = require('fs'),
  util = require('util');

http.createServer(function (req, res) {
  var path = __dirname + '/aula.mp4';
  var stat = fs.statSync(path);
  var total = stat.size;
  if (req.headers['range']) {
    var range = req.headers.range;
    var parts = range.replace(/bytes=/, "").split("-");
    var partialstart = parts[0];
    var partialend = parts[1];

    var start = parseInt(partialstart, 10);
    var end = partialend ? parseInt(partialend, 10) : total-1;
    var chunksize = (end-start)+1;
    console.log('RANGE: ' + start + ' - ' + end + ' = ' + chunksize);

    var file = fs.createReadStream(path, {start: start, end: end});
    res.writeHead(206, { 'Content-Range': 'bytes ' + start + '-' + end + '/' + total, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4' });
    file.pipe(res);
  } else {
    console.log('ALL: ' + total);
    res.writeHead(200, { 'Content-Length': total, 'Content-Type': 'video/mp4' });
    fs.createReadStream(path).pipe(res);
  }
}).listen(8080, "127.0.0.1");
console.log('Server running at 127.0.0.1:8080');

看起来服务器使用的是127.0.0.1:8080,而openshift上的情况并非如此。变化如下:

var http = require('http'),
  fs = require('fs'),
  util = require('util');

// if on OpenShift, use OpenShift ip/port, else use your local ip/port
var ipAddress = process.env.OPENSHIFT_INTERNAL_IP || process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";
var port = process.env.OPENSHIFT_INTERNAL_IP || process.env.OPENSHIFT_NODEJS_PORT || 8080;

http.createServer(function (req, res) {

  // This part of code is unchanged, so it's removed to simplify
  // the answer

}).listen(port, ipAddress);  // <<<<< use variables set above
console.log('Server running at ' + ipAddress + ":" + port);
var http=require('http'),
fs=需要('fs'),
util=require('util');
//如果在OpenShift上,请使用OpenShift ip/端口,否则请使用本地ip/端口
var ipAddress=process.env.OPENSHIFT|u INTERNAL|u IP | process.env.OPENSHIFT|u NODEJS|u IP |“127.0.0.1”;
var port=process.env.OPENSHIFT_INTERNAL|IP|process.env.OPENSHIFT_NODEJS|u port|8080;
http.createServer(函数(req,res){
//这部分代码没有改变,因此为了简化,将其删除
//答案
}).侦听(端口、IP地址);// 你需要这样做


如果您的应用程序出现故障,或者无法建立连接,路由系统将以
503
响应。

因为aula.mp4(var path=u dirname+'/aula.mp4';var stat=fs.statSync(path);)不在OpenShift上,所以statSync()引发异常,导致服务器崩溃,但我编辑的代码与您的答案相同,openshift和erro 503中的重新启动应用程序!您可以通过将aula.mp4移动到其他地方,在本地重现该问题。我试过了,服务器崩溃了,下面是错误:fs.js:684 return binding.stat(pathModule._makeLong(path));^错误:enoint,服务器上Object.fs.statSync(fs.js:684:18)上没有这样的文件或目录“/Users/xxxxx/tmp/aula.mp4”。(/Users/xxxx/tmp/x.js:11:17)在Server.EventEmitter.emit(events.js:98:17)在HTTPParser.parser.onIncoming(http.js:2108:12)我编辑代码问题,我使用您的代码,编辑github并重新启动openshift应用程序,现在呢?再次出现错误503…它仍然会杀死您的服务器,因为即使您将mp4文件放在openshift上,它在openshift上也不可读。我曾经尝试过,当我在openshift上部署文件系统时,我无法读取文件系统上的文件。我想这是出于安全考虑。。。您必须在数据库中存储所有内容,包括文件的内容。