与node.js和socket.io聊天的应用程序

我正在尝试使用node.js和socket.io创build一个聊天应用程序

这是我的地址脚本的app.js

var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(3000); app.get('/', function(req, res){ res.sendfile(__dirname + '/game.php'); }); io.sockets.on('connection', function(socket){ socket.on('send message', function(data){ io.sockets.emit('new message', data); }); }); 

与.html一切运作良好

但是当我改变它.php而不是加载页面开始下载

在“localhost:3000”

我应该改变什么才能使其工作?

如果你需要game.php代码,请问我发布它。

更新:编辑这部分

 app.get('/', function(req, res) { res.setHeader('Content-Type', 'text/html'); res.sendfile(__dirname + '/game.php'); }); 

现在它给了我

 ReferenceError: text is not defined at C:\Users\Mojtaba\Desktop\chat\app.js:9:33 at callbacks (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\router\index.js:161:37) at param (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\router\index.js:135:11) at pass (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\router\index.js:142:5) at Router._dispatch (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\router\index.js:170:5) at Object.router (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\router\index.js:33:10) at next (C:\Users\Mojtaba\Desktop\chat\node_modules\express\node_modules\connect\lib\proto.js:190:15) at Object.expressInit [as handle] (C:\Users\Mojtaba\Desktop\chat\node_modules\express\lib\middleware.js:31:5) at next (C:\Users\Mojtaba\Desktop\chat\node_modules\express\node_modules\connect\lib\proto.js:190:15) at Object.query [as handle] (C:\Users\Mojtaba\Desktop\chat\node_modules\express\node_modules\connect\lib\middleware\query.js:44:5 

什么决定了浏览器是否将文件显示为下载的附件,或者是否应该直接打开文件是Content-Disposition HTTP标头。

尝试在发送文件之前添加此项:

res.setHeader('Content-Disposition','inline');

现在浏览器不应再将该文件视为附件。 可能发生的情况是,express正在查看文件的扩展名,并且因为它不能识别PHP扩展名,所以它将文件作为附件发回。

但是打开的文件不应该在浏览器中显示,因为浏览器不能解释PHP。 PHP文件意味着在后端解释,而不是发送到浏览器。

你可以使用PHP作为一个视图引擎在快递使用例如php节点 ,买我不认为这是一个非常频繁的组合。

快递的默认视图引擎是玉 , 胡子也经常被提及以及把手 。

如果您更喜欢客户端而不是服务器端的模板引擎,请检查angular.js 。

在继续之前,了解将PHP文件发送到浏览器不是解决问题的解决scheme很重要,请先阅读一些关于服务器端和客户端模板之间差异的文章 。