小编Tan*_*aki的帖子

如何将用户的浏览器URL重定向到Nodejs中的其他页面?

在我正在尝试编写的应用程序中,主页面(http:// localhost:8675)具有以下形式:

<form action='/?joinnew' method='post'>
  <button>Start</button>
</form>
Run Code Online (Sandbox Code Playgroud)

这是server.js中的代码:

http.createServer(function(request, response) {
  var root = url.parse(request.url).pathname.split('/')[1];
  if (root == '') {
    var query = url.parse(request.url).search:
    if (query == '?joinnew') {
      var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc.
      // redirect the user's web browser to a new url
      // ??? How to do.  Need to redirect to 'http://whateverhostthiswillbe:8675/'+newRoom
...
}}}
Run Code Online (Sandbox Code Playgroud)

如果有办法在我不需要知道主机地址的情况下,我会很高兴,因为这可能会改变.

'http'对象是常规需求('http'),不需要('express').

post webserver redirect http node.js

69
推荐指数
5
解决办法
13万
查看次数

在Java中将其作为参数传递时创建数组

有没有办法创建一个对象数组作为构造函数或方法的一部分?我真的不确定怎么说这个,所以我举了一个例子.我有一个枚举,其中一个字段是数字数组.这是我尝试过的:

public enum KeyboardStuff {

    QWERTY(1, {0.5f, 1.3f, 23.1f}, 6);
    DVORAK(5, {0.1f, 0.2f, 4.3f, 1.1f}, 91);
    CHEROKEE(2, {22.0f}, 11);

    private int number, thingy;
    private float[] theArray;

    private KeyboardStuff(int i, float[] anArray, int j) {
        // do things
    }

}
Run Code Online (Sandbox Code Playgroud)

编译器说括号{}无效,应该删除.有没有一种方法可以将数组作为参数传递而不事先创建对象数组?

java arrays parameters arguments argument-passing

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

Java Generics:包含泛型的数组

可能重复:
Java如何:通用阵列创建
错误通用阵列创建

我的任务是用Java编写哈希表,它必须适用于任何数据类型.我写的代码的规则如下: - 哈希表必须有一个数组作为底层数据结构,在构造对象时确定的大小 - 当发生冲突时,应该放置碰撞的元素到链表中,它包含哈希表中该索引(键)的所有元素

因此,对于底层数据类型,我创建了一个LinkedList类型的数组(自定义,而不是Java API LinkedList).

private LinkedList<T>[] table;
Run Code Online (Sandbox Code Playgroud)

当然,问题是实例化这个数组.以下是我的一些尝试:

public HashTable(int size) {
  table = new LinkedList<T>[size];
}
Run Code Online (Sandbox Code Playgroud)

这会引发编译时泛型数组创建错误.

public HashTable(int size) {
  table = (LinkedList<T>[])(new Object[size]);
}
Run Code Online (Sandbox Code Playgroud)

这会ClassCastException在运行时导致错误(java.lang.Object无法转换为LinkedList).

项目负责人也不确定如何处理这个问题.有什么方法可以更改我的代码,以便哈希表仍然有一个数组作为其底层数据结构,并将冲突放在LinkedList中?

java arrays generics hashtable linked-list

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

Haskell数据声明是否可以按类型值限制

在Haskell中,有没有办法通过其组件的值来限制数据类型?我已经起草了一个例子.假设你有一个跳棋游戏.检查器可以是黑色或白色类型.

data CheckerType = BlackChecker | WhiteChecker deriving (Eq)

data Checker = Checker CheckerType Int
Run Code Online (Sandbox Code Playgroud)

棋盘游戏的游戏板包含一组黑色棋子和白棋子.

data GameBoard = GameBoard ([Checker]) ([Checker])
Run Code Online (Sandbox Code Playgroud)

在之前的声明中,有没有办法在第一个[Checker]中强制执行CheckerType为CheckerType黑色,第二个是相反类型的Checkers?

haskell types functional-programming declaration

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

按DynamoDB中列表的内容过滤/查询

我试图通过List中包含的Map的内容过滤DynamoDB查询.这是我正在处理的结构的一个例子.

{
    'EventType': 'git/push'
    'EventTime': 1416251010,
    'Commits': [
        {
            'id': '29d02aff...',
            'subject': 'Add the thing to the place'
        },
        {
            'id': '9d888fec...',
            'subject': 'Spelling errors'
        },
        ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

散列键是EventType和范围键EventTime.我正在尝试编写一个过滤器,将查询结果过滤到特定的id.是否可以创建一个正确过滤查询的DynamoDB过滤器表达式?(我的第一个想法是使用contains (a, a),但我认为这不适用于地图列表.)

nested-queries nosql amazon-dynamodb

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

Python 在类定义中实例化类

我正在尝试向保存该类实例的类添加一个变量。以下是我的代码的缩短版本。

class Classy :
    def __init__(self) :
        self.hi = "HI!"
    # "CLASSIES" variable holds instances of class "Classy"
    CLASSIES = []
    for i in xrange(0,4) :
        CLASSIES.append(Classy())
Run Code Online (Sandbox Code Playgroud)

运行代码后,我收到以下错误。

Traceback (most recent call last):
  File "classy.py", line 6, in Classy
    CLASSIES.append(Classy())
NameError: name 'Classy' is not defined
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法可以将类的实例添加到该类中的类/静态变量?

python constructor initialization class static-variables

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

Makefile变量赋值尽早执行

我有一个Makefile规则,需要将shell命令的结果存储到变量中供以后使用.出于某种原因,似乎$(shell)一旦我的规则匹配就会执行调用,而不是在执行期间遇到它.

该文件如下:

TMPDEV=/tmp/disk.img

$(TMPDEV):
        fallocate -l 806354944 $(TMPDEV)
        sudo parted --script $(TMPDEV) unit s mklabel msdos \
          mkpart primary fat16 2048 526335 \
          mkpart primary fat32 526336 1050623 \
          mkpart primary NTFS 1050624 1574911 \
          quit
        $(eval TMPDISK := $(shell sudo partx --verbose -a $(TMPDEV) | tail -1 | cut -d':' -f1))
        echo $(TMPDISK)
        sudo mkfs.fat -F 16 -n FAT16 $(TMPDISK)p1
Run Code Online (Sandbox Code Playgroud)

TMPDISK至少在fallocate通话之后,不可能知道它的价值是多少; 这就是为什么$(eval)语句被延迟到磁盘映像被分区之后.

我收到的输出是:

$ make
partx: stat failed /tmp/disk.img: No such file …
Run Code Online (Sandbox Code Playgroud)

makefile eval variable-assignment

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

AWS lib3s C/C++库示例代码/教程

我已经下载并查看了libs3的代码,是一个为C/C++编写的库,它与Amazon S3交互.这个库使用了一些我不太满意的概念,所以我很好奇人们是否知道使用这个库的任何教程或示例程序.

c api callback amazon-s3 amazon-web-services

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

Haskell - 匹配类型实例

我已经定义了类似于以下的Haskell类型:

data TypeData = TypeA Int | TypeB String | TypeC Char deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

在某些时候,我需要一种方法来过滤[TypeData]所有非TypeC实例.我想写的函数的签名是:

-- Returns a tuple containing (TypeC elements, non-TypeC elements)
partitionTypeCs :: [TypeData] -> ([TypeData],[TypeData])
Run Code Online (Sandbox Code Playgroud)

partition功能似乎适合这个:

-- Attempt:
partitionTypeCs data = partition (TypeData -> Bool) data
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚哪种函数与类型签名相匹配TypeData -> Bool.看起来我需要一个可以确定类型实例是否属于特定实例的函数.我知道我可以通过编写另一个函数(isTypeC (TypeC _) = True)来使用模式匹配,但是有更通用的方法或匹配类型实例的线条方式吗?

haskell types filtering instance data-partitioning

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

使用具有多个联接的SQL聚合函数

我试图在单个SQL查询中使用多个表的多个聚合函数(使用Postgres).

我的表结构类似于以下内容:

CREATE TABLE user (user_id INT PRIMARY KEY, user_date_created TIMESTAMP NOT NULL);
CREATE TABLE item_sold (item_sold_id INT PRIMARY KEY, sold_user_id INT NOT NULL);
CREATE TABLE item_bought (item_bought_id INT PRIMARY KEY, bought_user_id INT NOT NULL);
Run Code Online (Sandbox Code Playgroud)

我想计算每个用户购买和销售的商品数量.我想到的解决方案不起作用:

SELECT user_id, COUNT(item_sold_id), COUNT(item_bought_id)
FROM user
LEFT JOIN item_sold ON sold_user_id=user_id
LEFT JOIN item_bought ON bought_user_id=user_id
WHERE user_date_created > '2014-01-01'
GROUP BY user_id;
Run Code Online (Sandbox Code Playgroud)

这似乎执行了(item_sold_id,item_bought_id)的所有组合,例如,如果有4个已售出且2个已购买,则两个COUNT()都是8.

如何正确查询表以获取两个计数?

sql postgresql join aggregate-functions left-join

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