小编Lyu*_*lev的帖子

express-validator验证作为数组的参数

我正在使用express-validator来验证我的快速应用程序中的POST数据.我有一个表单,其中有一个选择,在用户可以选择多个选项:

<select name="category" multiple id="category">
    <option value="1">category 1 </option>
    .......
</select>
Run Code Online (Sandbox Code Playgroud)

如果我选择多个值,提交表单后的有效负载会显示此信息:

...&category=1&category=2&....
Run Code Online (Sandbox Code Playgroud)

现在,在我的Express应用程序中,我尝试像这样验证它:

req.checkBody('category', 'category cannot be empty').notEmpty();
Run Code Online (Sandbox Code Playgroud)

但是,即使我发送多个值后,我总是得到错误 - category cannot be empty.如果我打印我的变量req.body.category[0]- 我得到数据.但是,不知何故无法理解我需要将其传递给验证器的方式.

node.js express

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

如何使用全局用户定义的类对象

在Friend.h中

#ifndef FRIEND
#define FRIEND 
class Friend
{

public:
    static int i ;
    int j;
    Friend(void);
    ~Friend(void);
}frnd1;
#endif
Run Code Online (Sandbox Code Playgroud)

在Friend.cpp

#include "Friend.h"
int Friend::i = 9;
extern Friend frnd1;
Friend::Friend(void)
{
}

Friend::~Friend(void)
{
}
Run Code Online (Sandbox Code Playgroud)

在main.cpp中

#include <iostream>
using namespace std;
#include"Friend.h"

int main()
{
frnd1.j = 9;
cout<<"hello";
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,它给出了以下链接器错误:

error LNK2005: "class Friend frnd1" (?frnd1@@3VFriend@@A) already defined in main.obj
Run Code Online (Sandbox Code Playgroud)

我无法理解如何在main函数中使用全局对象.

c++

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

C++的关键字(和标准库)可以本地化吗?(可修改的解析器语法)

坚持下去,这将是漫长的!在问我的问题之前,我需要先解释几件事.

根据C++标准(并且如本问题及其答案中所述),编译器应该在标识符(变量,函数等)的名称中支持Unicode(甚至更准确地说是源中的UTF-8)我知道Clang完全支持(我的意思是你可以使用UTF-8编码的源文件),GCC仅在你使用\u标识符中的代码时支持它,但我们假设我们生活在一个完美的世界中,这在所有编译器上都能正常工作.

那样太好了!现在我不再需要用英语编写我的代码,最后可以用我的本地保加利亚语或者世界语来完成.毕竟,这就是标准要求的重点.除此之外还存在一个巨大的问题.让我们看一些(不是真正有意义的)代码:

首先使用英文标识符(ASCII):

int i = 0;
while(i < 100)
{
    auto f = static_cast<float>(i);
    std::string currentName = "name_" + toString(f);
    std::cout << getPrettyName(currentName) << ": " << getSalary(currentName) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

然后在保加利亚语中使用标识符(因为它非常清楚地显示了问题):

int ? = 0;
while(? < 100)
{
    auto ? = static_cast<float>(?);
    std::string ????????? = "???_" + ????????????(?);
    std::cout << ??????????(?????????) << ": " << ???????(?????????) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,由于关键字和标准库,第二个代码仍主要使用英语.有两个问题:

  1. 它不会帮助非英语的保加利亚人理解代码(假设他们不熟悉C++),他们仍然必须知道英语是适当的程序员,并不是这一切的一部分吗?
  2. 实际上更糟糕的是,至少在我看来,这是非常讨厌的.那些说一种语言的人,其字母不是基于拉丁文字,知道要用不同的字母书写,你必须切换键盘布局(大多数人使用Alt + Shift).我不得不将布局切换4次以写入每一行.这很烦人,而且很慢. …

c++ unicode

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

标签 统计

c++ ×2

express ×1

node.js ×1

unicode ×1