2017-06-04 24 views
0

NodeJSはリアルタイムのチャットアプリケーションを作成するのに最適で、自分のウェブサイトでチャットを実装したいと思っています。今はバックエンドコードを作成する必要があるので、今はデザインがあるだけです。NodeJS:PHPとの統合

しかし、私がsocket.io + expressを使用している場合、それはうまくいかないようには機能しません。

server.jsからコード:

var app = require('express')(); 
var http = require('http').Server(app); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.php'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

私は単に私はそれがページを表示したくないウェブサイトを参照するときしかし、localhost:3000index.phpを示したいと思います。代わりに、index.phpファイルをダウンロードします。

ただし、ファイルの拡張子をhtmlに変更すると、index.htmlになります。しかし、それは私が望むものではありません。

私はそこに、すぐにこの問題を解決できるいくつかのスマートな人がいることは知っています。私はそれをむかつくために非常に長い時間座っていました。

The website

+0

あなたはあなた自身で**コードを書くことができます**。 ** [もっと研究をして](// meta.stackoverflow.com/questions/261592)**あなたが問題を抱えていると、あなたが試みたものを投稿することができます** (** stackoverflow.com/help/mcve)を提供しています。私は良い質問と[完璧な質問]を読むことをお勧めします(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。また、[ツアー]を取って** [this](// meta.stackoverflow.com/questions/347937/)**を必ず読んでください。 –

+0

私はこれを投稿しました。 –

+1

残念ながら、ここでは許可されていません。これは、チュートリアルサイト、Google、またはマニュアルではありません。いくつかのコードを書いた開発者が、期待どおりに動作していない理由を理解するのに役立つ必要があります。 –

答えて

2

あなたはExpressでPHPファイルをレンダリングするためにphp-expressパッケージを使用することができます。

npm install --save php-express 

次に、この(あなたがあなたのマシンにインストールPHPを持っていることを確認してください)を使用します。

をserver.js

var express = require('express'); 
var app = express(); 

var phpExpress = require('php-express')({ 
    binPath: 'php' 
}); 

// set view engine to php-express 
app.set('views', './views'); 
app.engine('php', phpExpress.engine); 
app.set('view engine', 'php'); 

// routing all .php file to php-express 
app.all(/.+\.php$/, phpExpress.router); 

var server = app.listen(3000, function() { 
    console.log('listening on *:3000'); 
}); 

ソース:https://www.npmjs.com/package/php-express