0
我試着去使用會話中間件連接快遞和socket.io插座IO。用()不是一個函數
但是我得到這個錯誤:
io.use(function(socket, next){
^
TypeError: io.use is not a function
at Object.<anonymous> (/home/ubuntu/workspace/newserver.js:30:4)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:990:3
這裏是我的代碼:
var http = require('http');
var path = require('path');
var async = require('async');
var express = require('express');
var socketio = require('socket.io');
var sessions = require('express-session');
var mysql = require('mysql');
var RedisStore = require('connect-redis')(sessions);
var bodyParser = require('body-parser');
// App declaration
var router = express();
var server = http.createServer(router);
var io = socketio.listen(server);
io.set('log level',0);
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({extended:true}));
var sessionMiddleware = sessions({
store: new RedisStore({}),
secret: '901uj0394-0i4-#',
resave:true,
saveUninitialized:true
});
router.use(sessionMiddleware);
var session;
var appConfig = {
title: 'The Warring States 2'
};
router.set('views', path.resolve(__dirname,'client/views'));
router.set('view engine', 'pug');
var connection = mysql.createConnection({
// SQL Information
host: 'localhost',
user: 'boyton',
password: '',
database: 'WarringStates'
});
connection.connect(function(error){
// callback
if(!!error) {
console.log('Error!');
console.log(error);
}
else {
console.log('Connected to the database');
}
});
// Socket
var sockets = [];
var gamelobbies = [];
我只是開始與節點和表達,我創建了一個節點的c9容器,並安裝了默認的軟件包來處理堆棧,我試圖更新節點和npm並表達。但是林不知道,如果他們到最新版本
這裏是我所得到的,當我調用校驗節點版本
node: 4.7.3
npm: 2.15.11
yarn: not installed
快遞版本3.6.2
任何幫助和輸入會很好。多謝你們。
注意:socket.io版本:0.9.19 –
嘗試'var io = require('socket.io')(server);' – Ikbel
哦,非常感謝!它沒有工作,然後我試圖做npm安裝[email protected]它修復了它!但是現在我擔心我的節點版本不是最新的版本,我試着運行sudo n stable,但它仍然給我節點版本4?我如何解決這個問題? –