簡體   English   中英

使用 npm php-express 將 php 文件嵌入到反應應用程序中不起作用

[英]Embed php file into react app using npm php-express not working

我正在嘗試使用npm php-express將 php 文件嵌入到我的反應應用程序中。 我的機器上安裝了 php 並設置了環境變量。 我的文件結構如下:

../server/views/php/file.php
../app
../build

但是,當我使用npm start並單擊 php 文件運行反應應用程序時,我收到錯誤消息: Could not open input file:如果文件不在server/views/php/目錄中,然后單擊我收到錯誤消息: Failed to lookup view "file" in views directory "..\views\php" at Function.render

想知道是否有人可以幫助我弄清楚我到底做錯了什么。

我在 react 應用程序中的 php 中間件代碼如下所示:

const path = require('path');
const phpExpress = require('php-express')({
  binPath: 'php',
});

const setup = app => {
  app.set('views', path.join(__dirname, '../views/php'));
  app.engine('php', phpExpress.engine);
  app.set('view engine', 'php');

  app.all(/\/.+\.php$/, phpExpress.router);
  app.all(/\/(file).*/i, phpExpress.router);
};

module.exports = { setup };

Express 是一個 Node.js 框架,用於構建 HTTP 服務器。

php-express是 Express 中間件,旨在與 Express 一起使用。

React 是一個 JavaScript 框架,用於構建客戶端應用程序。

你不能在 React 應用程序中使用php-express ,因為:

  • React 不是 Express。
  • 您不能客戶端發出 HTTP 請求。

您可以使用 Express 編寫 HTTP 服務器並使用php-express通過它運行 PHP。

然后,您可以從 React 應用程序向該服務器發出請求。 這可以是跨域的(如果您將服務器設置為使用 CORS 授予權限),或者您可以構建 React 應用程序並部署生產規則,以便它們由同一台服務器托管。

但是,除非您強烈需要混合 PHP 和服務器端 JavaScript,否則您幾乎肯定最好使用不同的服務器來運行 PHP(例如 Nginx)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM