2017-12-30 5 views
0

제목에서 알 수 있듯이 socket.io를 사용하여 모든 것을 망 쳤습니다. 주로 express를 사용하는 방식이 express를 사용하여 다른 모든 것을 나눕니다. 경이로움을 작동back.end에 socket.io를 추가하면 모든 것이 깨졌습니다.

/*jshint esversion: 6*/ 
const express = require('express'); 
const http = require('http'); 
const bodyParser = require('body-parser'); 
const path = require('path'); 
const expressValidator = require('express-validator'); 
const flash = require('connect-flash'); 
const session = require('express-session'); 
const passport = require('passport'); 
const fs = require('fs'); 
const db = require('./config/db'); 

// Init App 
app = express(); 

// View Engine 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

// Bodyparser middleware 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: false, 
})); 

// Set Static path 
app.use(express.static(path.join(__dirname, 'static'))); 

:

다음은 그 일의 나의 오래된 방법입니다! 그러나 그것은과 같이 socket.io를 추가, 작동합니다

/*jshint esversion: 6*/ 
const app = require('express')(); 
const http = require('http').Server(app); 
const socket = require('socket.io')(http); 
const bodyParser = require('body-parser'); 
const path = require('path'); 
const expressValidator = require('express-validator'); 
const flash = require('connect-flash'); 
const session = require('express-session'); 
const passport = require('passport'); 
const fs = require('fs'); 
const db = require('./config/db'); 

// Init App 
// app = express(); 

// View Engine 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

// Bodyparser middleware 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: false, 
})); 

// Set Static path 
app.use(express.static(path.join(__dirname, 'static'))); 
이이 표현을 말하고 있기 때문에 express.*를 사용

나누기 모두가 정의되어 있지 않습니다. 따라서 내 고정 경로가 깨지고 물론 응용 프로그램이 충돌합니다. 몇 가지 해결책을 시도했지만 아무 소용이 없습니다.

app.use(express.static(path.join(__dirname, 'static'))); ^

ReferenceError: express is not defined

답변

1

이 시도 :

아차 오류를 추가하는 것을 잊었다. 아이디어는 당신이 특급을 수입해야한다는 것입니다. 나머지가 정의되면 Socket.io가 필요할 수 있습니다.

/*jshint esversion: 6*/ 
const express = require('express'); 
const http = require('http'); 
const bodyParser = require('body-parser'); 
const path = require('path'); 
const expressValidator = require('express-validator'); 
const flash = require('connect-flash'); 
const session = require('express-session'); 
const passport = require('passport'); 
const fs = require('fs'); 
const db = require('./config/db'); 

// Init App 
const app = express(); 

// Init http server 
const server = http.createServer(app); 

// Init socket 
const socket = require('socket.io').listen(server); 

// View Engine 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

// Bodyparser middleware 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: false, 
})); 

// Set Static path 
app.use(express.static(path.join(__dirname, 'static'))); 
+0

감사합니다. 매력처럼 일했습니다! 이제는 클라이언트 쪽을 대화 형으로 만드는 방법, 특히 변경된 데이터를 업데이트하는 방법을 찾아야합니다. (데이터베이스 번호와 마찬가지로) – William

+0

@William Great! 그들은 꽤 완벽하고 처음 socket.io를 사용하는 것을 이해하는 데 도움이되는 시작 가이드를 가지고 있습니다 : https://socket.io/get-started/chat/ –

+0

Ehhh, 이제 저는 게시/socket.io/ * shrug *, 아무것도 그 문제를 커버하는 것 같다, 롤. 제가 거의 완전한 서버 쉘에서부터 시작하기는하지만, 시작 가이드가 그것을 자르지 않을 것입니다. 왜냐하면 저는 많은 것들, 특히 경로를 사용하고 있기 때문입니다. – William

관련 문제