【问题标题】:NodeJS: Integrate with PHPNodeJS:与 PHP 集成
【发布时间】:2017-11-05 09:01:51
【问题描述】:

我听说 NodeJS 非常适合制作实时聊天应用程序,我想在我的网站上实现聊天。现在我只有设计,所以我现在必须制作后端代码。

但是,当我使用 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:3000 上显示index.php,但是当我浏览到该网站时它不想显示该页面。相反,它会下载 index.php 文件。

但是如果我将文件的扩展名更改为 html,则它变为index.html,它可以工作。但这不是我想要的。

我知道有一些聪明人可以立即解决这个问题。我自己已经坐了很长时间试图解决它。

【问题讨论】:

  • Stack Overflow 您应该尝试自己编写代码。在 doing more research 之后,如果您有问题,您可以发布您尝试过的内容,并清楚地解释什么不起作用并提供Minimal, Complete, and Verifiable example。我建议阅读How to Ask 一个好问题和the perfect question。另外,请务必使用tour 并阅读this
  • 我发布这个是为了学习,而不是让别人为我制作。
  • 不幸的是,这里不允许这样做。这不是教程网站、谷歌或手册。它适用于编写了一些代码并需要帮助了解为什么它没有按预期工作的开发人员。
  • 是的,在这种情况下,我需要帮助理解为什么它下载文件而不是显示它。这样我就可以自己知道如何进行项目了。

标签: javascript php node.js express socket.io


【解决方案1】:

您可以使用 php-express 包通过 Express 渲染 PHP 文件:

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

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2012-01-23
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多