小编pat*_*rit的帖子

如何从Express路由映射中自动生成API文档?

我正在开发nodejs + Express中的REST API,我一直在README文件中记录我的API,我想知道是否可以自动化它.例如:

app.get('/path/to', dosomething);
app.post('/path/to/:somethingelse', scream);
Run Code Online (Sandbox Code Playgroud)

我想让它自动生成这个

GET: /path/to dosomething
POST: /path/to/:somethingelse scream
Run Code Online (Sandbox Code Playgroud)

rest self-documenting-code literate-programming node.js express

11
推荐指数
3
解决办法
9690
查看次数

在Slick中打印插值SQL查询

我正在尝试打印插值的Slick2 SQL语句进行调试,我得到的只是带有问号的那个

def query(name: String) = sql"SELECT MAX(age) FROM users WHERE name = $name".as[Int]
println(query("Bob").getStatement)   
Run Code Online (Sandbox Code Playgroud)

以上打印出来:

SELECT MAX(age) FROM users WHERE name = ?
Run Code Online (Sandbox Code Playgroud)

我怎样才能打印出来:

SELECT MAX(age) FROM users WHERE name = 'Bob'
Run Code Online (Sandbox Code Playgroud)

注意:这个问题与不重复

scala jdbc prepared-statement slick slick-2.0

11
推荐指数
2
解决办法
1569
查看次数

在网页中嵌入二进制数据?

我有一个6000个元素的数据结构,每个元素我需要存储7位信息.如果我天真地将它存储为6000个元素填充数字的数组,它需要大约22 KB.我试图减少页面的大小 - 什么是存储6000*7位信息的最佳方式(应该是大约5 KB).我想要像数据结构一样的"比特流".我想过把它编码成一个字符串甚至一个图像,但不完全确定.我没有编码为字符串的原因是因为我无法保证所有字符都不会是不可打印的ASCII字符之一(例如ASCII 1-25)

javascript performance steganography bit-manipulation page-size

10
推荐指数
1
解决办法
1586
查看次数

在Scala中捆绑导入

在我的Scala项目中,几乎所有文件都有这些导入:

import eu.timepit.refined._
import eu.timepit.refined.api.Refined
import eu.timepit.refined.auto._
import eu.timepit.refined.numeric._

import spire.math._
import spire.implicits._

import com.wix.accord._
import com.wix.accord.dsl._

import codes.reactive.scalatime._

import better.files._

import java.time._

import scala.collection.mutable
...
...
Run Code Online (Sandbox Code Playgroud)

在Scala中干燥这个的最佳方法是什么?我可以为我的项目(使用某种sbt插件吗?)或在包级别指定所有这些?

import scala sbt sbt-plugin

10
推荐指数
1
解决办法
501
查看次数

Git:当远程跟踪分支发生变化时,如何自动更新我的本地分支?

我想在后台运行一些东西,基本上git pull --rebase只要在我的远程分支中发生一些变化.如果没有冲突,大多数时候它在后台静默工作.在一场冲突中,它只会让我处于rebase-resolve-conflict阶段,直到我解决它等待的所有事情.我该怎么做呢?是否有现有的软件已经这样做了?

git shell

10
推荐指数
1
解决办法
372
查看次数

如何在nodejs终端中检测shift + Enter?

我有以下nodejs程序

import readline from 'readline'

readline.createInterface({input: process.stdin, output: process.stdout}).prompt()

process.stdin.on('keypress', (letter, key) => console.log({letter: letter, key: key}))
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都有效,例如如果我按SHIFT+X,它会正确输出key.shift === True

{
  letter: 'X',
  key: { sequence: 'X', name: 'x', ctrl: false, meta: false, shift: true }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我按SHIFT+ENTER,则key.shift永远不会true

{
  letter: '\r',
  key: {sequence: '\r', name: 'return', ctrl: false, meta: false, shift: false}
}
Run Code Online (Sandbox Code Playgroud)

为什么?如何检测在 Node.js 中的SHIFT+ENTER使用readline

我想做什么?我正在构建一个终端提示应用程序,因此该readline模块非常方便,因为它带有自动完成器、历史记录、分页、提示前缀等。但是,我也希望能够输入多行提示。

node.js

10
推荐指数
1
解决办法
847
查看次数

如何从子线性空间/时间中的字符流计算回文?

我甚至不知道是否存在解决方案.这是问题的细节.您是一个接受无限长字符流的程序(为简单起见,您可以假设字符为1或0).在任何时候,我都可以停止流(让我们说N个字符通过后)并询问你到目前为止收到的字符串是否是回文.如何使用较少的线性空间和/或时间来做到这一点.

puzzle algorithm stream palindrome

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

> 2类型参数的Scala中缀类型别名?

我知道在Scala,你可以做type ===>[A, B] = Map[A, B],然后你可以使用中缀表示法来定义def foo: String ===> Int哪个与说法相同def foo: Map[String, Int].有没有办法利用这个中缀表示法来创建> 2个参数的类型?例如,我想要这样的东西:

type A ~> B ~~~> C成为别名的说法Map[A, Pair[B, C]]

无论如何我可以写一些这样的东西:

type A to B -> C作为(A, B, C)类型的别名?

scala scalaz type-alias

9
推荐指数
1
解决办法
915
查看次数

Play的路线文件中的导入和条件是否可能?

我知道Play的早期版本曾用于支持路由文件中的路由和条件(如果是块),但是我找不到Play 2.2.x和HTTP路由的任何此类文档.

我想替换这个:

GET /api/users/:id com.corporate.project.controllers.UserController.get(id)
Run Code Online (Sandbox Code Playgroud)

使用较短版本使用import如下:

import com.corporate.project.controllers._ 

GET /api/users/:id UserController.get(id)
Run Code Online (Sandbox Code Playgroud)

此外,路由文件中是否可以有条件?例如

if Play.isDev(Play.current())
  GET /displayConfig   DebugController.displayServerConfigs()
Run Code Online (Sandbox Code Playgroud)

scala playframework-2.2

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

如何在 fs2 中“拆分”流?

我想做这样的事情:

def splitStream[F, A](stream: fs2.Stream[F, A], split: A => B): (Stream[F, A], Stream[F, B)) = 
  (stream, stream.map(split)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它从源头“拉”了两次 - 当我同时排出streamstream.map(split). 我如何防止这种情况?通过维护我自己的内部缓冲区以某种方式切换到基于“推送”的模型,这样我就不会拉两次?

scala fs2

9
推荐指数
1
解决办法
1146
查看次数