小编Pro*_*fer的帖子

this.setState是否在响应中返回promise

我做了componentWillMount()异步。现在我可以使用awaitsetState

这是示例代码:

componentWillMount = async() => {
  const { location, fetchRooms } = this.props
  await this.setState({ roomId: room && room.roomId ? room.roomId : 0 })
  fetchRooms()
}
Run Code Online (Sandbox Code Playgroud)

所以这里的问题是this.setState回报承诺,因为我可以使用await它吗?

编辑

当我等待时,它将按顺序运行;1, 2, 3当我删除等待时,它将运行1, 3, 2

  componentWillMount = async() => {
    const { location, fetchRooms } = this.props
    console.log(1)
    await this.setState({ roomId: room && room.roomId ? room.roomId : 0 } => {
      console.log(2)
    })
    console.log(3)
    fetchRooms()
  }
Run Code Online (Sandbox Code Playgroud)

javascript promise async-await reactjs

16
推荐指数
3
解决办法
1万
查看次数

PrivateRoute没有在reactjs react-router-dom中工作

PrivateRoute在我的react.js项目中集成HOC时,我完全陷入困境.

这是我的路线文件

import React, { Component } from "react";
import { Route, Redirect, Switch, BrowserRouter as Router } from 'react-router-dom';
import Dashboard from "../view/Dashboard/Dashboard";
import Login from "../view/Login/Login";
import Admin from "../view/UserManagement/Admin";
import cookie from 'react-cookies'

const PrivateRoute = ({ component, ...rest }) => {
  const isAuthed = cookie.load('token')
  console.log(isAuthed, 'dddddddddddddddddddd')
  return (
    <Route {...rest} exact
      render = {(props) => (
        isAuthed ? (
          <div>
            {React.createElement(component, props)}
          </div>
        ) :
        (
          <Redirect
            to={{
              pathname: '/login',
              state: { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router react-router-dom

12
推荐指数
1
解决办法
1210
查看次数

不推荐使用 w、wtimeout、j 和 fsync 的顶级使用。使用 writeConcern 代替

我正在使用带有环回的 mongodb,并且在成功连接后,我收到以下警告

Top-level use of w, wtimeout, j, and fsync is deprecated. Use writeConcern instead.
Run Code Online (Sandbox Code Playgroud)

环回版本:5.5.0

如何摆脱这个?请帮忙

database mongodb node.js loopbackjs loopback4

9
推荐指数
2
解决办法
6507
查看次数

如何在Ubuntu中使用Node.js连接VPN

我的nodejs文件中有代码,可以提供以下信息

host:"147.0.40.145"
method:"aes-256-cfb"
password:"9c359ad1ebeec200"
port:38473
Run Code Online (Sandbox Code Playgroud)

我需要使用以上信息,并希望通过它连接VPN。我使用下面的代码来提取上述信息。

const connectServer = (serverId) => {
  const token = store('access_token')
  httpOptions.Authorization = token.token_type+' '+token.access_token
  return new Promise((resolve, reject) => {  
   const response = await axios.post(`${baseUrl}/servers/${serverId}/connect`, {'serverId':serverId},{headers: httpOptions})     
   console.log(response.data)
    resolve(response.data)
  })
}
Run Code Online (Sandbox Code Playgroud)

所以,我需要知道是否有可能使用nodejs连接或创建 VPN

先感谢您!!!

javascript vpn node.js ubuntu-16.04 privoxy

8
推荐指数
1
解决办法
1928
查看次数

如何转到 gatsby 中的上一页 (history.goBack)

我正在研究盖茨比。我需要像以前使用 reactjs 一样返回隐私页面/链接。

<a onClick={() => this.props.history.goBack}>
  <button type="button" className="close_tab">
    <img src={Close} alt="" />
  </button>
</a>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用 gatsby 做到这一点?

javascript reactjs gatsby reach-router

8
推荐指数
2
解决办法
6198
查看次数

如何全局定义套接字变量

我的文件中有这段代码,在socketio这里我可以socket简单地使用。

import _ from 'lodash'
import mongoose from 'mongoose'

exports.register = (server, options, next) => {
  var io = require('socket.io')(server.listener)
  io.on('connection', async(socket) => {
    // here I can use socket.emit() and all
  })
  next()
}

exports.register.attributes = {
  name: 'socket'
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要使用io套接字处理emit来自各种文件的事件,并且不想io.on('connection', async(socket) => {})每次都连接它。

我怎样才能做到这一点?

谢谢!!!

javascript node.js socket.io hapijs

7
推荐指数
1
解决办法
231
查看次数

套接字多次发出事件

我正在套接字上聊天。这是我在nodejs文件中运行良好的套接字代码。

外部套接字io.emit工作正常,并向与之连接的所有用户发出消息conversationId

但是socket.broadcast.emit我用来通知用户的(当用户使用应用程序时)会socket.broadcast.emit多次发出()事件。为什么会这样呢?我是否完全错过了套接字方法。

socket.on('sendMessage', async(action2) => {
  try {
    action2.author = socket.decoded.id
    action2.readBy = [socket.decoded.id]
    action2.deliveredTo = [socket.decoded.id]
    const createMessage = await Message.create(action2)

    const sender = await User.findOne({ _id: socket.decoded.id }, { firstName: 1 })

    const memebers = //some api call to get members
    const promises = members.map(async(member) => {
      // socket for message
      const socketNotification = {
        // my object
      }
      console.log(socketNotification, 'socketNotifcication')
      socket.broadcast.emit(`messageSocket${member.memberId}`, socketNotification)
    })
    await Promise.all(promises)
    io.emit(action2.conversationId, messages) // …
Run Code Online (Sandbox Code Playgroud)

javascript messaging chat node.js socket.io

6
推荐指数
1
解决办法
443
查看次数

服务器上的活动连接数已达到最大

我正在使用mongodb和nodejs。我已经在Atlas上托管了mongodb。

我的后端一直运行良好,但是现在有时会卡住,当我在mongodb地图集上看到分析数据时,它显示活动连接的最大数量达到100

在此处输入图片说明

有人可以解释为什么会这样吗?我可以重新启动连接并将其设置为0吗?

@Stennie我用过猫鼬来连接数据库

这是我的配置文件

const mongooseOptions = {
  useNewUrlParser: true,
  autoReconnect: true,
  poolSize: 25,
  connectTimeoutMS: 30000,
  socketTimeoutMS: 30000
} 

exports.register = (server, options, next) => {
  defaults = Hoek.applyToDefaults(defaults, options)

  if (Mongoose.connection.readyState) {
    return next()
  }

  if (!Mongoose.connection.readyState) {
    server.log(`${process.env.NOED_ENV} server connecting to ${defaults.url} ${defaults.url}`)

    return Mongoose.connect(defaults.url, mongooseOptions).then(() => {
      return next() // call the next item in hapi bootstrap
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js replicaset serverless-framework

6
推荐指数
3
解决办法
588
查看次数

如何使用javascript将mp3转换为声波图像

我的项目需要将 mp3 音频转换为包含该 mp3 波形的图像。就像是

在此输入图像描述

我可以使用javascript(特别是nodejs)来做到这一点吗?请帮忙

javascript node.js

6
推荐指数
2
解决办法
5311
查看次数

如何在除一个td之外的tr上应用onClick?

我的反应组件中有这张表。我需要应用onClick所有,<tr>但需要排除最后一列(<td>)。

可以这样做吗?

<tr
  className="cursor-pointer"
  key={activity._id}
  onClick={() =>
    activeTab === "active"
      ? this.setState({ activity, completeModal: true })
      : this.setState({ activity, showModal: true })
  }
>
  <td>{moment(activity.date).format("MM/DD/YY h:mm a")}</td>
  <td>{activity.manifestNumber}</td>
  <td>
    <NumberFormat
      thousandSeparator={true}
      displayType={"text"}
      value={activity.grossWeight}
    />{" "}
    lbs
  </td>
  <td>{activity.facility.name}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

html javascript html-table reactjs

5
推荐指数
1
解决办法
2191
查看次数