ビン/routes/indexからio.emit()にアクセスするには?特急4.15
var server = http.createServer(app);
io = require('socket.io')(server);
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
});
});
server.listen(port);
をwww.jsここで私は(私はそれが可能であるかどうか知らない?)socket.io介してメッセージやマングース結果にアクセスしたり、送信する必要がある上
I routes/index.js
ページからクライアントにメッセージを送信する必要があります。私は=は( '../ binに/ WWW')が必要です。この のvar IOなどのindex.jsであり、
module.exports.io = io; //(in `bin/www`)
とアクセスタイIOを試してみました何 。
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
});
});
が、それは私の必要性は、私はルートが呼び出されるときにクライアントに動的に結果を送信する場合、またはsocket.io
さを使用して、クライアントにいくつかmongoose
クエリ結果を送信 ある
io.on('connection', function(client) {
^
TypeError: io.on is not a function....
若干の誤差がthowsそれは可能ですか?エクスプレス4.15 var server = http.createServer(app);
に
ビンにある/
app.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
/*app.use(function(req, res, next) {
req.headers['if-none-match'] = 'no-match-for-this';
next();
});*/
//app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public'), {
maxAge: '30d',
setHeaders: function (res, path) {
res.setHeader('Cache-Control', 'public, max-age=14770')
}
}));
console.log("PATH"+path.join(__dirname, 'public'));
app.io = require('socket.io')();
app.io.on('connection', function(socket){
// do whatever you want
});
const userRoute = require('./routes/index')(app.io);
app.use('/', userRoute);
app.use('/users', users);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
エラー更新後アシシュ
PATHC:\Users\ADSS\Desktop\PrintAdmin\public
Cによって与えられたコードはwww.js。 ¥Users¥ADSS¥Desktop¥PrintAdmin¥node_modules¥express¥lib¥router¥index.js:635 fn.applyを返します(this、arguments); ^
TypeError: Cannot read property 'apply' of undefined
at
C:\ Users \ユーザーADSS \デスクトップ\ PrintAdmin \ node_modules \表現\ libに\ルーター\ index.js:635:14 次の(Cで:\ユーザーは\ ADSS \デスクトップ\ PrintAdmin \ (C:¥Users¥ADSS¥Desktop¥PrintAdmin¥node_modules¥express¥lib¥router¥index.js:174:3) (C:¥Users¥ADSS¥Desktop¥PrintAdmin¥node_modules¥express¥lib¥router¥index.js:47:12) atオブジェクト。 (Module.js:570:32) の をObject.Module._extensions..js(module.js:579)で にコピーします(C:¥Users¥ADSS¥Desktop¥PrintAdmin¥app.js:46:44)。 :10) Module.load(module.jsにおいて:487:32)tryModuleLoad(module.jsで :446:12) Function.Module._load(module.jsにおいて:438:3) Module.requireで(module.js:497:17) at require(internal/module.js:20:19) atオブジェクト。 (Module.js:570:32) の (Object.Module._extensions..js)の (モジュール:C:¥Users¥ADSS¥Desktop¥PrintAdmin¥bin¥www:7:11) :10) at Module.load(module.js:487:32)
heii user.jsの仲間..私はapp.jsでサーバーを作成していないんだ。それはwww.jsにある。 – AnonymousObject