小编Rif*_*ife的帖子

Go的database/sql的rows.Scan如何使用

我使用 database/sql 并定义了一个到 DB 表列(标签字段)的结构映射:

// Users ...
type Users struct {
    ID            int64  `field:"id"`                      
    Username      string `field:"username"`           
    Password      string `field:"password"`           
    Tel           string `field:"tel"`                   
}
Run Code Online (Sandbox Code Playgroud)

然后我查询:

        rows, err := db.Query(sql)  // select * from users
        if err != nil {
            fmt.Println(err)
        }
        defer rows.Close()
        for rows.Next() {
            user := new(Users)

            // works but I don't think it is good code for too many columns
            err = rows.Scan(&user.ID, &user.Username, &user.Password, &user.Tel)

            // TODO: How to scan in a simple way 


            if …
Run Code Online (Sandbox Code Playgroud)

go

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

如何使用http-proxy-middleware和express通过请求主机名设置代理?

我想用 http-proxy-middleware 和 express 配置代理。规则是主机名的映射,例如:

http://123.com   >>  http://localhost:3000/123
http://456.com   >>  http://localhost:3000/abc
Run Code Online (Sandbox Code Playgroud)

我试过这样:

import express from 'express';
import http from 'http';
import proxy from 'http-proxy-middleware';

const app = express();

app.use( async function (req, res) {  
  let direction = 'http://localhost:3000';
  console.log('hostname: ', req.hostname);
  console.log('originalUrl: ', req.originalUrl);
  if (req.hostname == '123.com') {
    direction = `http://localhost:3000/123${req.originalUrl}`;
  }
  if (req.hostname == '456.com') {
    direction = `http://localhost:3000/abc${req.originalUrl}`;
  }

  return await proxy({ target: direction, changeOrigin: false })
});

const server = http.createServer(app);
app.set('port', '127.0.0.1');
server.listen(9999, '0.0.0.0');
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

http-proxy node.js http-proxy-middleware

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

如何使用 sinon 存根 aws s3 upload

如何在 Node.js 中对 S3 上传进行存根?

我用的是摩卡和诗农。我有一个导出包含上传方法的类实例的文件。它看起来像这样:

// storage.ts
import * as AWS from 'aws-sdk';
import archiver from 'archiver';
import retry from 'bluebird-retry';


export class Storage {
  private readonly s3: AWS.S3 = new AWS.S3({
    endpoint: MINIO_ENDPOINT,
    accessKeyId: AWS_ACCESS_KEY_ID,
    secretAccessKey: AWS_SECRET_ACCESS_KEY,
    s3ForcePathStyle: true,
    signatureVersion: 'v4',
  });
  private readonly uploadBucket: string = UPLOAD_BUCKET;
  private readonly downloadBucket: string = DOWNLOAD_BUCKET;

  public async upload(localPath: string, s3Key: string, onProgress: (progress: number) => void): Promise<void> {
    await retry(async () => { // Be careful, it will influence …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 mocha.js node.js sinon

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