spa*_*kle 6 javascript google-app-engine node.js express puppeteer
此代码在本地工作,但是当我部署到 Google App Engine 时,出现错误“未定义浏览器变量”。如何以更好的方式全局定义浏览器变量?我的目标是在启动时启动 puppeteer 浏览器,并使用相同的实例为每个 HTTP 请求打开一个新网页。
const puppeteer = require('puppeteer');
const express = require('express');
const fs = require('fs');
var port = process.env.PORT || 80;
const app = express();
app.get('/request', async (req, res, next) => {
console.log(browser)
//using browser var here <---
// UnhandledPromiseRejectionWarning: ReferenceError: browser is not defined
});
app.listen(port, () => {
console.log('Listening on PORT: ', port)
setup()
});
const setup = async function(){
console.log("Initializing Puppeteer...")
global.browser = await puppeteer.launch({
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage=true',
'--disable-accelerated-2d-canvas=true',
'--disable-gpu',
]
});
browser.on('disconnected', setup);
console.log(`Started Puppeteer with pid ${browser.process().pid}`);
}
Run Code Online (Sandbox Code Playgroud)
应用程序.yml
runtime: nodejs10
env: standard
instance_class: F4_HIGHMEM
automatic_scaling:
max_instances: 15
min_instances: 0
max_pending_latency: 10ms
max_concurrent_requests: 1
Run Code Online (Sandbox Code Playgroud)
我能够在 App Engine Standard 上重现您的用例:
const puppeteer = require('puppeteer');
const express = require('express');
const fs = require('fs');
var port = process.env.PORT || 80;
const app = express();
global.browser = null;
const setup = async function(){
console.log("Initializing Puppeteer...")
browser = await puppeteer.launch({
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage=true',
'--disable-accelerated-2d-canvas=true',
'--disable-gpu',
]
});
browser.on('disconnected', setup);
}
app.get('/', (req, res) => {
setup();
console.log(`Started Puppeteer with pid ${browser.process().pid}`);
res.status(200).send('Hello, world!').end();
});
// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
setup();
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
// [END gae_node_request_example]
module.exports = app;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
263 次 |
最近记录: |