带有index.php而不是index.html的Nodejs + socket.io

时间:2018-03-06 06:30:32

标签: node.js codeigniter

我有使用nodejs的简单应用程序。我的视图文件是php而不是html。有关编译php文件的问题: res.sendfile(__ dirname +'/ index.php');它适用于html文件但不适用于php文件。请帮助如何将php与nodejs一起使用。

2 个答案:

答案 0 :(得分:0)

PHP-Express是一个很好的模块,可以帮助您实现您的要求。它与Express版本3和4兼容。

希望这有帮助!

答案 1 :(得分:0)

您可以使用 PHP-Express 来实现此目的 应用结构

├── app.js
├── package.json
└── views
    └── file.php

和app.js

var path = require('path');
var express = require('express');
var app = express();
var router = express.Router();
var phpExpress = require('php-express')({
    binPath: 'php'
});
var bodyParser = require('body-parser');
app.use(bodyParser.json());

app.set('port', (process.env.PORT || 5000));

app.use('/', express.static(__dirname));

app.set('views', path.join(__dirname, '/views'));
app.engine('php', phpExpress.engine);
app.set('view engine', 'php');

app.all(/.+\.php$/, phpExpress.router);

app.use(function (req, res, next) {
    res.status(404).send("Sorry can't find that!")
});

app.listen(app.get('port'), function() {
    console.log('Node app is running on port', app.get('port'));
});

你不需要渲染php,查看引擎phpExpress会照顾它.router会找到合适的路径并从你的视图文件夹中提供php。