如何把用nodejs写的程序当成一个服务被其它程序访问?
发布于 7 年前 作者 SidKwok 3049 次浏览 来自 问答

我举个puppeteer的例子。

现在的需求是: 1、用户通过前端点击一个按钮,给php的后端发一个ajax请求 2、php通过调用nodejs写的脚本获取puppeteer生成的截图 3、把截图发送到前端

问题: 因为这个脚本每次调用,都会重新执行一次 puppeteer.launch() -> browser.newPage() -> 截图 -> browser.close(),但是现在希望,puppeteer.launch()browser.close(只执行一次,也就是在脚本开启和脚本关闭的时候执行。而browser.newPage() -> 截图希望在每次请求的时候再执行。也就是说希望puppeteer的启动和关闭在一个脚本A,截图在脚本B,而脚本A是一直运行的,直到人为手动关闭。而每次执行node B.js就可以无需启动puppeteer而执行截图功能。

请问这种效果要怎么做?目前想到的是把这段脚本写成一个类似web的服务,每次请求来了就用http请求这个截图服务,然后返回相应的response。

有没有一种方法是可以,将puppeteer的启动和关闭的脚本放在一个进程里,然后另外一个进程主要做的是截图的代码?

5 回复

解释一下楼上,Function As A Service。 1、把你 puppeteer 截图服务封装成一个函数(模块),至于里面的热启动、缓存、健康检查之类的也可以稍微扩展; 2、然后通过一些 web 框架(如 egg、koa)透出一个 http 的接口,当然 serverless 也是很适合这种场景的(如果全程都是冷启动的话); 3、PHP 调用……

@x-cold 感谢回复

php调用的话,就是类似curl一下这样子吗?对php不是很熟悉,所以想详细了解一下。

@x-cold @atian25 好的 感谢提供思路

回到顶部