Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:在End Node.js、Express之后写入_Javascript_Node.js_Express_Compression - Fatal编程技术网

Javascript 错误:在End Node.js、Express之后写入

Javascript 错误:在End Node.js、Express之后写入,javascript,node.js,express,compression,Javascript,Node.js,Express,Compression,我得到以下错误 标题 是否有人知道此错误的原因。我知道在发送响应后无法写入流,但我无法找到执行此写入操作的位置&我收到了此错误。我的app/controllers/index.js文件代码如下。请帮忙 index.js var request= require("request"); var crypto = require('crypto'); var env = process.env.NODE_ENV || 'development' , config = require('../../c

我得到以下错误

标题 是否有人知道此错误的原因。我知道在发送响应后无法写入流,但我无法找到执行此写入操作的位置&我收到了此错误。我的app/controllers/index.js文件代码如下。请帮忙

index.js

var request= require("request");
var crypto = require('crypto');
var env = process.env.NODE_ENV || 'development'
, config = require('../../config/config')[env]
var async=require("async");
exports.index = function(req, res){

//some code


var data=[]; 
async.parallel([

function(fncallback) {

    // code here
    data[0]="some data1";
},        
function(fncallback) {

   //code here
   data[1]="some data2";
},     
function(fncallback) {

    // code here
    data[2]="some data3";
},          
function(fncallback) {

   //code here
   data[3]="some data4";
},          

],function(err,responsedata){
/*some code*/
res.render('index', {
    container1:data[0],
    container2:data[1],
    container3:data[2],
    container4:data[3]
});

});

};
var express = require('express')
, flash = require('connect-flash');
var MongoStore = require('connect-mongo')(express);
var env = process.env.NODE_ENV || 'development'
, config = require('./config')[env];
module.exports = function (app, config, passport) {
app.set('showStackError', true)
// should be placed before express.static
app.use(express.compress({
filter: function (req, res) {
return /json|text|javascript|css/.test(res.getHeader('Content-Type'))
},
level: 9
}))

app.use(express.favicon());
app.enable('view cache');
var oneYear = 31557600000;
app.use(express.static(config.root + '/public',{ maxAge: oneYear }))

//console.log(config.root);
// don't use logger for test env
if (process.env.NODE_ENV !== 'test') {
app.use(express.logger('dev'))
}

// set views path, template engine and default layout
app.set('views', config.root + '/app/views')
app.set('view engine', 'jade')

app.configure(function () {

app.use(express.cookieParser())

app.use(express.session({
secret: '***********',
// 2 * 60 * 60 * 1000
cookie: {
expires: new Date(Date.now() + 7200000)
},    
saveUninitialized: false, // don't create session until something   stored
resave: false, //don't save session if unmodified
store: new MongoStore({
host: 'hostname', // Default, optional
port: portno, // Default, optional
db: 'db_name', // Required
auto_reconnect:true,
w: 1, // Default,
ssl: false, // Default
ttl: 15 * 24 * 60 * 60, // = 15 days. Default
touchAfter: 24 * 3600, // time period in seconds
autoRemove: 'interval',
autoRemoveInterval: 10, // In minutes. Default
}, function(e) {
// Start the app by listening on <port>
var port = process.env.PORT || config.guiPort;
var server = app.listen(port, '192.168.1.104');
console.log('Express app started on port '+port);
})
}));

app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride())
//app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
//passport.authenticate('remember-me');
app.use(passport.authenticate('remember-me'));
app.use(flash());
// routes should be at the last

app.use(function(req,res,next){
res.locals.session = req.session;

next();
});

app.use(app.router)

})

// development env config
// to display nice formatted html
app.configure('development', function () {
app.locals.pretty = true
});
}
server.js

var http = require('http');
var fs = require('fs')
, passport = require('passport')
, utils = require('./utils');

var fs = require('fs')
var events = require('events')
var util = require('util')
var path = require('path')

var FsPool = module.exports = function(dir) {
events.EventEmitter.call(this)
this.dir = dir;
this.files = [];
this.active = [];
this.threads = 1;
this.on('run', this.runQuta.bind(this))
};
// So will act like an event emitter
util.inherits(FsPool, events.EventEmitter);

FsPool.prototype.runQuta = function() {
if(this.files.length === 0 && this.active.length === 0) {
return this.emit('done');
}
if(this.active.length < this.threads) {
var name = this.files.shift()

this.active.push(name)
var fileName = path.join(this.dir, name);
var self = this;
fs.stat(fileName, function(err, stats) {
if(err)
throw err;
if(stats.isFile()) {
fs.readFile(fileName, function(err, data) {
if(err)
throw err;
self.active.splice(self.active.indexOf(name), 1)
self.emit('file', name, data);
self.emit('run');

});
} else {
self.active.splice(self.active.indexOf(name), 1)
self.emit('dir', name);
self.emit('run');
}
});
}
return this
};
FsPool.prototype.init = function() {
var dir = this.dir;
var self = this;
fs.readdir(dir, function(err, files) {
if(err)
throw err;
self.files = files
self.emit('run');
})
return this
};
var fsPool = new FsPool(__dirname + '/public/')

fsPool.on('file', function(fileName, fileData) {
//console.log('file name: ' + fileName)
//console.log('file data: ', fileData.toString('utf8'))

})
fsPool.on('dir', function(dirName) {
//console.log('dir name: ' + dirName)

})
fsPool.on('done', function() {
//console.log('done')
});
fsPool.init()



var env = process.env.NODE_ENV || 'development'
, config = require('./config/config')[env]
, mongoose = require('mongoose');

/*******************************cluster code starts**************/
var cluster = require('cluster');
//cluster.schedulingPolicy = cluster.SCHEDRR;
var numCPUs = require('os').cpus().length;
//var numCPUs = 10;
console.log("no of cpus"+numCPUs);
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}

cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
require('./config/passport').localPassport(passport, config)
var app = express();
http.globalAgent.maxSockets = 5;
app.use(passport.initialize());
app.use(passport.session());
require('./config/express')(app, config, passport);
require('./config/routes')(app, passport);
exports = module.exports = app
}
/***********************************************************/
var http=require('http');
var fs=require('fs')
,passport=require('passport')
,utils=require('./utils');
var fs=require('fs')
var events=require('事件')
var util=require('util')
var path=require('路径')
var FsPool=module.exports=function(dir){
events.EventEmitter.call(此)
this.dir=dir;
this.files=[];
this.active=[];
此参数为1;
this.on('run',this.runQuta.bind(this))
};
//因此将像事件发射器一样工作
继承(FsPool、events.EventEmitter);
FsPool.prototype.runQuta=函数(){
if(this.files.length==0&&this.active.length==0){
返回此.emit('done');
}
if(this.active.length
express.js

var request= require("request");
var crypto = require('crypto');
var env = process.env.NODE_ENV || 'development'
, config = require('../../config/config')[env]
var async=require("async");
exports.index = function(req, res){

//some code


var data=[]; 
async.parallel([

function(fncallback) {

    // code here
    data[0]="some data1";
},        
function(fncallback) {

   //code here
   data[1]="some data2";
},     
function(fncallback) {

    // code here
    data[2]="some data3";
},          
function(fncallback) {

   //code here
   data[3]="some data4";
},          

],function(err,responsedata){
/*some code*/
res.render('index', {
    container1:data[0],
    container2:data[1],
    container3:data[2],
    container4:data[3]
});

});

};
var express = require('express')
, flash = require('connect-flash');
var MongoStore = require('connect-mongo')(express);
var env = process.env.NODE_ENV || 'development'
, config = require('./config')[env];
module.exports = function (app, config, passport) {
app.set('showStackError', true)
// should be placed before express.static
app.use(express.compress({
filter: function (req, res) {
return /json|text|javascript|css/.test(res.getHeader('Content-Type'))
},
level: 9
}))

app.use(express.favicon());
app.enable('view cache');
var oneYear = 31557600000;
app.use(express.static(config.root + '/public',{ maxAge: oneYear }))

//console.log(config.root);
// don't use logger for test env
if (process.env.NODE_ENV !== 'test') {
app.use(express.logger('dev'))
}

// set views path, template engine and default layout
app.set('views', config.root + '/app/views')
app.set('view engine', 'jade')

app.configure(function () {

app.use(express.cookieParser())

app.use(express.session({
secret: '***********',
// 2 * 60 * 60 * 1000
cookie: {
expires: new Date(Date.now() + 7200000)
},    
saveUninitialized: false, // don't create session until something   stored
resave: false, //don't save session if unmodified
store: new MongoStore({
host: 'hostname', // Default, optional
port: portno, // Default, optional
db: 'db_name', // Required
auto_reconnect:true,
w: 1, // Default,
ssl: false, // Default
ttl: 15 * 24 * 60 * 60, // = 15 days. Default
touchAfter: 24 * 3600, // time period in seconds
autoRemove: 'interval',
autoRemoveInterval: 10, // In minutes. Default
}, function(e) {
// Start the app by listening on <port>
var port = process.env.PORT || config.guiPort;
var server = app.listen(port, '192.168.1.104');
console.log('Express app started on port '+port);
})
}));

app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride())
//app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
//passport.authenticate('remember-me');
app.use(passport.authenticate('remember-me'));
app.use(flash());
// routes should be at the last

app.use(function(req,res,next){
res.locals.session = req.session;

next();
});

app.use(app.router)

})

// development env config
// to display nice formatted html
app.configure('development', function () {
app.locals.pretty = true
});
}
var express=require('express'))
,flash=require('connect-flash');
var mongostre=require('connect-mongo')(express);
var env=process.env.NODE|env | |“development”
,config=require('./config')[env];
module.exports=函数(应用程序、配置、护照){
app.set('showStackError',true)
//应放在express.static之前
app.use(express.compress({
过滤器:功能(req、res){
return/json | text | javascript | css/.test(res.getHeader('Content-Type'))
},
级别:9
}))
app.use(express.favicon());
app.enable('view cache');
一年var=31557600000;
app.use(express.static(config.root+/public',{maxAge:oneYear}))
//console.log(config.root);
//不要将记录器用于测试环境
if(process.env.NODE_env!=“test”){
app.use(express.logger('dev'))
}
//设置视图路径、模板引擎和默认布局
app.set('views',config.root+'/app/views')
应用程序集('查看引擎','翡翠')
app.configure(函数(){
app.use(express.cookieParser())
应用程序使用(express.session)({
秘密:“*************”,
// 2 * 60 * 60 * 1000
曲奇:{
过期:新日期(Date.now()+7200000)
},    
saveUninitialized:false,//在存储某些内容之前不要创建会话
resave:false,//如果未修改,则不保存会话
商店:新蒙哥斯托尔({
主机:'主机名',//默认值,可选
端口:portno,//默认,可选
db:'db_name',//必需
自动重新连接:正确,
w:1,//默认值,
ssl:false,//默认值
ttl:15*24*60*60,//=15天。默认值
touchAfter:24*3600,//时间段(秒)
自动删除:“间隔”,
autoRemoveInterval:10,//以分钟为单位。默认值
},功能(e){
//通过监听启动应用程序
var port=process.env.port | | config.guiPort;
var server=app.listen(端口'192.168.1.104');
console.log('Express应用程序在端口'+端口上启动);
})
}));
使用(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride())
//应用程序使用(flash());
app.use(passport.initialize());
app.use(passport.session());
//护照。验证(“记住我”);
应用程序使用(passport.authenticate('memory-me');
应用程序使用(flash());
//路线应该在最后
应用程序使用(功能(请求、恢复、下一步){
res.locals.session=req.session;
next();
});
应用程序使用(应用程序路由器)
})
//开发环境配置
//显示格式良好的html
应用程序配置('开发',功能(){
app.locals.pretty=true
});
}

我无法找到此错误的原因,请帮助我解决。请提前感谢。

您在此对象声明中有一个输入错误:

res.render('index', {
    container1:data[0];
    container2:data[1];
    container3:data[2];
    container4:data[3];
});
应该是:

res.render('index', {
    container1:data[0],
    container2:data[1],
    container3:data[2],
    container4:data[3]
});

谢谢你的建议,我在这里纠正了它,但在原始代码中没有输入错误。