我使用 puppeteer 和 node js (express) 创建了刮板。这个想法是当服务器收到 http 请求时,我的应用程序将开始抓取页面。
问题是我的应用程序是否一次收到多个 http 请求。抓取过程将一遍又一遍地开始,直到没有 http 请求命中。我如何只启动一个 http 请求并将另一个请求排队,直到第一个抓取过程完成?
目前,我已经尝试过使用以下代码的节点请求队列,但没有成功。
var express = require("express");
var app = express();
var reload = require("express-reload");
var bodyParser = require("body-parser");
const router = require("./routes");
const RequestQueue = require("node-request-queue");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
app.use(express.static("public")); // static assets eg css, images, js
let rq = new RequestQueue(1);
rq.on("resolved", res => {})
.on("rejected", err => {})
.on("completed", () => {});
rq.push(app.use("/wa", …
Run Code Online (Sandbox Code Playgroud)我想从我的选择选项列表中获取属性.
同时我的代码如下:
var Billing = React.createClass({
getInitialState() {
return {
associations: [],
value: '',
associationsList: '1'
};
},
handleChange(event) {
this.setState({value: event.target.value});
},
handleOption(event){
var option = event.target.getAttribute('data-id');
this.setState({associationsList: option});
},
render() {
var listAssociations = this.state.associations.map(function(index){
return (
<option onChange={this.handleOption} value={index.name} data-id={index.id} ref={index.name} key={index.id}>{index.name}</option>
)
});
var BillingInfo
{
if(this.state.associationsList == "0")
{
return (
<div>
<Tabs selected={0}>
<Pane label="Billing Info">
<div className="row">
<div className="small-12">
Associations:
<select value={this.state.value} onChange={this.handleChange}>
{listAssociations}
</select>
</div>
</div>
<div>
{this.state.value}<br/>
{this.state.associationsList}
Basic package
</div> …
Run Code Online (Sandbox Code Playgroud)我试图控制从我的数组呈现的动态复选框。我的问题是我有多个复选框,但我的构造函数中只有一个状态。是否有任何其他方法可以控制动态字段/项目而无需
下面是我的代码:
onAddingItem = (item) =>{
var self = this;
const value = item.target.type === 'checkbox' ? item.target.checked : item.target.value;
var newArray = self.state.product.slice();
if(item.target.checked){
newArray.push(item.target.value);
self.setState({addProducts:value, product:newArray})
} else {
newArray.splice(item.target.value, 1); //remove element
self.setState({addProducts:value, product:newArray}); //update state
}
}
render(){
var self = this;
const {title, photo, photoHeight, photoWidth, showPhoto, editorState, description, editorData, productsList} = this.state;
const product_list = productsList.map((index, i) =>
<tr key={i+1}>
<td>{i+1}</td>
<td>{index.name}</td>
<td>
<div class="checkbox checkbox-circle checkbox-color-scheme">
<label class="checkbox-checked">
<input type="checkbox" value={index.name} checked={self.state.addProducts} onChange={this.onAddingItem}/> …
Run Code Online (Sandbox Code Playgroud)我在 Twilio 中不断收到错误代码 31002,但不知道如何调试。我使用客户端 JS 和 Ruby on Rails 作为后端。
首先,我要做的是创建可以从浏览器向手机进行语音通话的应用程序。
请参阅下图了解我在浏览器上遇到的错误:
javascript ×3
reactjs ×2
express ×1
jquery ×1
node.js ×1
puppeteer ×1
react-rails ×1
twilio ×1