Javascript 如何将Node.js服务器设置为使用index.php而不是默认的index.html?

Javascript 如何将Node.js服务器设置为使用index.php而不是默认的index.html?,javascript,php,html,express,puppeteer,Javascript,Php,Html,Express,Puppeteer,我有一个工作index.html文件 默认情况下,index.html是公共目录中的主页 使用下面的工作server.js,我可以在浏览器中生成pdf: const puppeteer = require("puppeteer"); const path = require('path'); const express = require('express'); //var exec = require("child_process").exec; co

我有一个工作index.html文件

默认情况下,index.html是公共目录中的主页

使用下面的工作server.js,我可以在浏览器中生成pdf:

const puppeteer = require("puppeteer");
const path = require('path');
const express = require('express');
//var exec = require("child_process").exec;

const app = express();

app.use(express.static(path.join(__dirname, '..', 'public')));

app.get('/pdf', async (req, res) => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// go to page
await page.goto("http://6f8fe372710a.ngrok.io/lesson.php", {
  waitUntil: "networkidle2"
});

// Navigate to a specific div on the website
const dom = await page.$eval('#todo', (el) => {
   return el.innerHTML 
 }) // Get DOM innerHTML

 // inject jQuery


 await page.setContent(dom); 

 
await page.setViewport({ width: 1680, height: 1050 });
const todays_date = new Date();
const createdPDF = path.join(__dirname, 'files', todays_date.getTime() + '.pdf');

 // get local Bootstrap.min.css stylesheet
await page.addStyleTag({
  path: 'bootstrapmin.css'
});
// get local Bootstrap.min.js script
await page.addScriptTag({
  path: 'bootstrap.min.js'
});


await page.waitFor(10000);

const pdf = await page.pdf({
  path: createdPDF,
  format: "A4",
  printBackground: true,
  displayHeaderFooter: true,
  headerTemplate: `<div style="font-size:7px;white-space:nowrap;margin-left:38px;">
                      ${new Date().toDateString()}
                      <span style="margin-left: 10px;">Lesson Notes</span>
                  </div>`,
  footerTemplate: `<div style="font-size:7px;white-space:nowrap;margin-left:38px;width:100%;">
                      Lesson Notes
                      <span style="display:inline-block;float:right;margin-right:10px;">
                          <span class="pageNumber"></span> / <span class="totalPages"></span>
                      </span>
                  </div>`,
  margin: {
    top: '38px',
    right: '38px',
    bottom: '38px',
    left: '38px'
  }
});
await browser.close();
res.set({
  "Content-Type": "application/pdf",
  "Content-Length": pdf.length
});
res.sendFile(createdPDF);
});

app.listen(5000, () => {
console.log('server started on port 5000. Press Ctrl+C to quit');
});
const puppeter=require(“木偶演员”);
const path=require('path');
const express=require('express');
//var exec=require(“子进程”).exec;
常量app=express();
app.use(express.static(path.join(uu dirname,…,,,,public));
app.get('/pdf',异步(req,res)=>{
const browser=wait puppeter.launch();
const page=wait browser.newPage();
//转到第页
等待页面。转到(“http://6f8fe372710a.ngrok.io/lesson.php", {
等待至:“networkidle2”
});
//导航到网站上的特定div
const dom=wait page.$eval('todo',(el)=>{
返回el.innerHTML
})//获取DOM innerHTML
//注入jQuery
等待page.setContent(dom);
等待page.setViewport({宽度:1680,高度:1050});
const todays_date=新日期();
const createdPDF=path.join(u dirname,'files',todays_date.getTime()+'.pdf');
//获取本地Bootstrap.min.css样式表
等待page.addStyleTag({
路径:“bootstrapmin.css”
});
//获取本地Bootstrap.min.js脚本
等待page.addScriptTag({
路径:“bootstrap.min.js”
});
等待页面。等待(10000);
const pdf=wait page.pdf({
路径:createdPDF,
格式:“A4”,
背景:是的,
displayHeaderFooter:对,
校长职位:`
${new Date().toDateString()}
课堂讲稿
`,
页脚模板:`
课堂讲稿
/ 
`,
保证金:{
顶部:“38px”,
右:'38px',
底部:“38px”,
左:“38px”
}
});
等待浏览器关闭();
res.set({
“内容类型”:“应用程序/pdf”,
“内容长度”:pdf.Length
});
res.sendFile(createdPDF);
});
app.listen(5000,()=>{
log('服务器在端口5000上启动。按Ctrl+C退出');
});
但是,我想使用index.php而不是index.html。但是在公用文件夹中将index.html替换为index.php无法生成pdf

我的要求:


如何设置上述node server.js代码以使用index.php而不是默认的index.html?

。。。不要?Expressjs是Node.js的Web服务器框架,Node.js是一个Javascript标准库,由V8 Javascript引擎执行。如果您要求它提供一个.php文件——一种完全不同的编程语言和引擎——它将完全这样做:它将以普通数据的形式发送文件本身。它不会运行它,因为Node.js不是PHP@Mike“波马克斯”卡默曼,好的。关于这个问题,我还有哪些选项可以选择。@kibikawanjala切换到处理PHP的服务器。@Phix,我特别倾向于Node.js,因为我使用Puppeter生成pdf,它在Node.js上运行得很好,除非您心目中有一台处理PHP的服务器-我很高兴听到这个消息。您有以下选项:(1)使用Node.js/Express重做PHP代码。在(2)建立一个临时与节点服务器同时运行的二级PHP服务器后,如果你付钱给我作为顾问,我可能会告诉你做什么,你的节点服务器和代理,这样你就可以建立一些快速路由,只需响应“PHP服务器响应什么”但是php服务器只在本地公开。有一个选项(3)是“拼命让Node.js做PHP”,包括尝试执行PHP解释器并捕获其stdio/err”,但这太荒谬了