2017-12-30 39 views
0

タイトルが示すように、socket.ioを使用してすべてを壊しました。主に、それが明示的に呼び出す方法は、明示的に他のすべてを壊すからです。驚異を働かせるバックエンドに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'))); 

は、ここでそれをやって私の古い方法です!急行が定義されていないと言っているので

/*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.*を使用して、すべてをどうぞ。しかしそれはそうのようなsocket.ioを追加し、動作します。だから私の静的なパスが壊れて、もちろんアプリケーションがクラッシュします。私はいくつかの解決策を試しましたが、無駄です。

おっと、エラーを追加するのを忘れ:

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素晴らしい!彼らは非常に完全であり、私がsocket.ioを初めて使用したときの理解を助けてくれるスタートガイドを持っています:https://socket.io/get-started/chat/ –

+0

ええ、今私はポスト/ socket.io/ * shrug *、何もその問題をカバーしていないようです、笑。私はほぼ完全なサーバーシェルから始めていますが、出発ガイドはそれをカットするつもりはないので、私は多くのもの、特にルートを使用しているためです。 – William

関連する問題