小编Bil*_*ill的帖子

ES6:模块“mongoose”没有默认导出

使用 ES6 导入和导出我觉得我应该能够将导入声明为 import mongoose, { Schema, Document } from 'mongoose';但我收到错误Module '"mongoose"' has no default export.

以下确实有效,但显然不是进行此导入的正确方法。导出默认 ID 也想删除。

import * as mongoose from 'mongoose';
import { Schema, Document } from 'mongoose';

export interface IUser extends Document {
  email: string;
  password: string;
}

const UserSchema: Schema = new Schema({
  email: { type: String, required: true, unique: true },
  password: { type: String, required: true }
});

export default mongoose.model<IUser>('User', UserSchema);
Run Code Online (Sandbox Code Playgroud)

然后我用它

import UserModel, { IUser } from '../models/example' …
Run Code Online (Sandbox Code Playgroud)

mongoose node.js typescript

7
推荐指数
2
解决办法
5495
查看次数

Gulp Livereload in Chrome

下面的代码似乎工作得很好,直到我去1ocalhost:8081 ...

然后我收到消息..

<pre>{"tinylr":"Welcome","version":"0.0.5"}</pre>
Run Code Online (Sandbox Code Playgroud)

我的目录结构是......

____gulp
| |____build
| | |____images
| | |____index.html
| | |____scripts
| | |____styles
| |____gulpfile.js
| |____node_modules
| |____src
| | |____images
| | |____index.html
| | |____scripts
| | |____styles
Run Code Online (Sandbox Code Playgroud)

为什么我的html页面没有加载?如果我尝试浏览1ocalhost:8081/build/index.html页面不会加载,我得到了消息

{"error":"not_found","reason":"no such route"}

我也尝试过chrome插件,但是当我点击插件时,我得到了下面的msg

Could not connect to LiveReload server. Please make sure that LiveReload 2.3 (or later) or another compatible server is running.

我检查了Chrome中插件的插件设置,并检查文件网址的选项

继承我评论的代码......

//sudo npm install gulp -g
// install chrome extension from https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei
//Go into the settings …
Run Code Online (Sandbox Code Playgroud)

google-chrome node.js livereload gulp

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

如何在Docker容器中连接套接字与Socket.io?

我在服务器外观的docker容器中有一个小型套接字服务器

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server, {origins: 'localhost:*'});
io.on('connection', function (socket) {
console.log('Connected');
});
const PORT = 8081;
const HOST = '0.0.0.0';
server.listen(PORT, HOST);
Run Code Online (Sandbox Code Playgroud)

和docker文件是

FROM keymetrics/pm2-docker-alpine:latest
WORKDIR /root
RUN apk update && \
   apk upgrade && \
   apk add git
ENV HOME /root
COPY socket.js ./
COPY package.json ./
RUN npm install
COPY pm2.json ./
EXPOSE 8081
CMD [ "pm2-docker", "start", "pm2.json" ]
Run Code Online (Sandbox Code Playgroud)

pm2.json看起来像

{
"apps": [{
    "name": "socket-server",
    "script": "socket.js",
    "exec_mode" …
Run Code Online (Sandbox Code Playgroud)

socket.io docker

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

React Router v4:无法在 GitHub 页面上加载页面

在本地,我可以很好地浏览到 /buttons 我什至可以刷新它,它也很好,但是当我将构建目录上传到 github 页面时,我无法访问 /buttons,而是获得了 GitHub 404 页面,而不是我自己的 'notfound ' 页。

如果我创建从主页到 /buttons 的链接,则按钮将加载,但直接浏览它不会加载。

import React, { useState } from 'react';
import { BrowserRouter, Switch, Route } from 'react-router-dom';
import { Context } from "./components/context";
import { Layout } from "./components/layout";
import { Home } from './routes/home';
import { Buttons } from './routes/buttons';
import { NotFound } from './routes/notfound';

const Router: React.FC = () => {

  const [global, setGlobal] = useState({
    language: localStorage.getItem("language") || 'en',
    apiUrl: 'https://api.domain.com/api',
    loggedIn: localStorage.getItem("jwt") …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router-v4

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

无法使用默认格式进行格式化

mystring.rs

pub fn return_string() {
  return "Some String"
}
Run Code Online (Sandbox Code Playgroud)

然后在 main 中,我想打印这个字符串

mod mystring;
const test = config::return_string();
println!("{}", test);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

println!("{}", test);
   |                    ^^^^ `()` cannot be formatted with the default formatted
Run Code Online (Sandbox Code Playgroud)

rust

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

模仿Firebase客户端库的结构和模式

我正在考虑制作自己的JavaScript客户端库,我喜欢Firebase格式化请求的方式.我正在努力了解最新情况.从这里查看网络指南,我发现以下代码:

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");

var usersRef = ref.child("users");

usersRef.set({

    alanisawesome: {
      date_of_birth: "June 23, 1912",
      full_name: "Alan Turing"
    },

    gracehop: {
      date_of_birth: "December 9, 1906",
      full_name: "Grace Hopper"
    }

});
Run Code Online (Sandbox Code Playgroud)

我可以看到它ref等于一个被调用的函数Firebase,并且usersRef等于ref.child.

我想象的是这样的:

 Firebase = function(url) {
    this.child = function(path) {

  console.log(url);
  console.log(path);

};
};
Run Code Online (Sandbox Code Playgroud)

在这里,我可以看到usersRef.set被调用,但我无法弄清楚这将如何或在何处发生?是set函数还是对象?我注意到火力有set(),update(),push()transaction(),让我觉得这些都是功能.

"TypeError: Cannot read property 'set' of undefined
Run Code Online (Sandbox Code Playgroud)

也许我完全走错了路,我只是不熟悉这种模式.

javascript static-libraries javascript-objects firebase

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

如何将文件从浏览器发送到远程IPFS网关

我有一个输入字段正在调用_getFile函数

<input type="file" class="file" on-change="_getFile"/>
Run Code Online (Sandbox Code Playgroud)

获取文件

_getFile(event) {
  this.loading = true;
  const file = event.target.files[0];
  let reader = new window.FileReader()
  reader.onloadend = () => this._saveToIpfs(reader)
  reader.readAsArrayBuffer(file)
 }
}
Run Code Online (Sandbox Code Playgroud)

一旦有了数组缓冲区,我们就调用...

_saveToIpfs(data){

}
Run Code Online (Sandbox Code Playgroud)

这是我需要的帮助,我想将选定的文件发送到' https://ipfs.infura.io:5001/api/v0/add '或' https://ipfs.io/api/v0/加 '怎么办?是xhr帖子吗?我希望得到IPFS哈希值

下面的简单形式似乎是上传文件,然后由于错误ERR_CONTENT_LENGTH_MISMATCH而断开连接

<form action="https://ipfs.io/api/v0/add/" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我也尝试过经典的XHR

_getFile(event) {
const file = event.target.files[0];
var data = new FormData();
data.append('path', event.target.files[0]);
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
    if(request.readyState == 4){ …
Run Code Online (Sandbox Code Playgroud)

ipfs

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

React:Google“一键”回调函数未被调用

<script src="https://accounts.google.com/gsi/client"></script>\n...\ndeclare var google: any;\n...\n\n  useEffect(() => {\n    const handleCredentialResponse = (response: any) => {\n      console.log(response);\n    };\n    const client_id = process.env.REACT_APP_GOOGLE_CLIENT_ID;\n    const callback = handleCredentialResponse;\n    const auto_select = true;\n    google.accounts.id.initialize({ client_id, callback, auto_select });\n    google.accounts.id.prompt((notification: any) => {\n      console.log(notification);\n    });\n  }, []);\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么handleCredentialResponse根本不被调用?系统会提示用户登录,他们点击继续,然后该函数永远不会被调用!咕噜!以上摘自此处和此处的文档

\n\n

注销notification

\n\n
nl\xc2\xa0{g: "display", h: true}\nnl\xc2\xa0{g: "skipped", l: "issuing_failed"}\n
Run Code Online (Sandbox Code Playgroud)\n

google-oauth reactjs

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

使用 TypeScript Fastify,如何验证和输入路由请求?

我的基本服务器导入并注册路由join并添加 TypeProvider 以进行 fastify。

import Fastify from "fastify";
import { join } from "./routes/onboarding/join";
import { JsonSchemaToTsProvider } from "@fastify/type-provider-json-schema-to-ts";

const fastify = Fastify({
  logger: true,
}).withTypeProvider<JsonSchemaToTsProvider>();

fastify.register(join);

const start = async () => {
  try {
    await fastify.listen({ port: 3000 });
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
Run Code Online (Sandbox Code Playgroud)

加入路线...

import {
  FastifyInstance,
  FastifyReply,
  FastifyRequest,
} from "fastify";

export async function join(fastify: FastifyInstance, _options: Object) {
  fastify.post(
    "/animals",
    {
      schema: {
        body: {
          type: "object",
          required: …
Run Code Online (Sandbox Code Playgroud)

typescript fastify

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

React Functional Component:如何从 useEffect() 外部访问变量

我已经简化了下面的问题,我使用useEffect来确保 dom 在选择项目之前已经呈现,这很好用并且在尝试获取这些元素之前不需要超时,但是如果我想在另一个组件我如何访问它们?

printAll()函数无法找到变量。

import React, { useEffect } from 'react';

const Warning: React.FC = () => {
  useEffect(() => {
    const confirm = document.getElementById("confirm");
    const invalid = document.getElementById("invalid");
    const confirmed = document.getElementById("confirmed");
    const warningBar = document.getElementById("warning-bar");
  }, []);

  function printAll () {
    console.log(confirm);
    console.log(invalid);
    console.log(confirmed);
    console.log(warningBar);
  }

printAll()

  return (
    <div>
      <section className='warning-bar' id='warning-bar'>
        <div className='confirm' id='confirm'>Confirm</div>
        <div className='invalid' id='invalid'>Invalid</div>
        <div className='confirmed' id='confirmed'>Confirmed</div>
      </section>
    </div>
  );
};```
Run Code Online (Sandbox Code Playgroud)

reactjs

4
推荐指数
1
解决办法
6258
查看次数