Javascript NodeJS中的错误是什么
我在NodeJS 0.10中的应用程序正在我的节点localhost(127.0.0.1)中运行,我的链接不侦听,发现OpenShift!但是没有运行我的脚本,错误:(),我的GitHub()…帮助我 我的代码: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 + '
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上部署文件系统时,我无法读取文件系统上的文件。我想这是出于安全考虑。。。您必须在数据库中存储所有内容,包括文件的内容。