小编tom*_*456的帖子

非法base64数据错误消息

我正在构建一个API,接受POST给它的JSON数据.

我有以下user结构,最近我将password数据类型更改为[]bytefrom,string以便它与bcrypt包"很好地".

type User struct {
    Id           string             `json:"id,omitempty"`
    Email        string             `json:"email,omitempty"`
    Username     string             `json:"username,omitempty"`
    Password     []byte             `json:"password,omitempty"`
    Name         string             `json:"name,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)

但是,当用户使用5个或更多字符的密码进行POST时,我现在在输入字节4处收到JSON响应非法base64数据中返回的内部错误.如果密码为4个或更少字符,则没有问题.

我已经将错误指向了这段代码:

err := json.NewDecoder(req.Body).Decode(User)
if err != nil && err != io.EOF {
    return err
}
Run Code Online (Sandbox Code Playgroud)

关于修复的任何想法?

go

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

PHP用户类是否应该扩展数据库类?

我不确定这是否完全是错误的,所以我正在寻找一些建议.

我已经建立了一个数据库类,其构造函数建立了与MySQL数据库的PDO连接.

我一直在关注单身人士和全球变量,但似乎总有人建议反对其中任何一个.

我正在尝试扩展数据库类的用户类,因此我可以调用PDO函数/方法,但维护单独的用户类代码.这是一件愚蠢的事吗?

php database pdo class

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

Redigo 多请求

我以前一直在使用这个:

data, err := redis.Bytes(c.Do("GET", key))
Run Code Online (Sandbox Code Playgroud)

确保返回的数据是一个字节片。

但是,我现在需要向 Redis 请求添加一个额外的命令,所以我有这样的事情:

c.Send("MULTI")
c.Send("GET", key)
c.Send("EXPIRE", key)
r, err := c.Do("EXEC")
Run Code Online (Sandbox Code Playgroud)

但现在我似乎无法让GET命令返回一个字节片。我试过添加redis.Bytes如下,但没有运气。

c.Send("MULTI")
redis.Bytes(c.Send("GET", key))
c.Send("EXPIRE", key)
r, err := c.Do("EXEC")
Run Code Online (Sandbox Code Playgroud)

go redis redigo

6
推荐指数
2
解决办法
5935
查看次数

React CSS-如何仅将CSS应用于特定页面

我正在使用create-react-app,正在尝试找到一种“高效”的方法来将样式表应用于特定页面。

我的src文件夹结构如下所示:

| pages
| - About
| - - index.js
| - - styles.css
| - Home
| - - index.js
| - - styles.css
| index.js
| index.css
Run Code Online (Sandbox Code Playgroud)

index.js我使用的每个文件中import './style.css'

但是,我发现当我从一个页面导航到下一个页面时,起始页面中的样式将被应用到目标页面,就好像它们已经被缓存一样,而目标页面中的样式并未被遵循。

我只是想知道我是否误解了如何在React中将样式应用于特定页面。我是否应该制作完全独立的,包含样式的组件?

我正在考虑以内联方式应用它们,但我意识到使用JS样式时存在局限性。

reactjs create-react-app

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

Jest - 测试 try/catch

我正在尝试测试此类方法:

get () {
  try {
    return 'value'
  } catch (e) {
    return 'value2'
  }
}
Run Code Online (Sandbox Code Playgroud)

和:

test('the get method retrieves value', () => {
  const value = MyClass.get()
  expect(value).toBe('value')
})
Run Code Online (Sandbox Code Playgroud)

我的测试覆盖率显示我已经测试try了方法的一部分,但没有测试该catch部分。

我怎样才能覆盖这个catch部分?

javascript testing jestjs

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

Rails ENV变量

我最近问了一个类似的问题,但随着问题的发展,我决定创建一个新问题 - 我希望这是预期的方法吗?

将我的Rails 4应用程序推送到Heroku后,我不断收到内部服务器错误页面,错误是:

您必须在应用程序的配置中设置config.secret_key_base

发生这种情况是因为我的.gitignore文件故意包含config/initializers/secret_token.rb.

我已经安装了Figaro gem,以便我可以将secret_key_base设置为环境变量以增加安全性.我已经检查了Heroku,密钥设置正确.

我对secret_token.rb的代码如下:

MyApp::Application.config.secret_key_base = ENV["SECRET_KEY_BASE"]
Run Code Online (Sandbox Code Playgroud)

但是,我仍然遇到同样的问题.

谁能帮忙???

ruby-on-rails heroku

5
推荐指数
2
解决办法
8490
查看次数

Heroku上的rails database.yml文件的生产条目

只是查看我的Rails 4应用程序的database.yml文件,发现生产数据库没有任何设置 - 只有测试和开发数据库.

我实际上没有任何问题,但希望通过发布此问题来避免其他潜在问题.

在本地我使用PG数据库,我也使用PG数据库在Heroku上托管我的应用程序.

我是否应该在yml中为生产数据库文件设置一些设置,因为我真的不确定?

ruby-on-rails heroku ruby-on-rails-4

5
推荐指数
2
解决办法
4417
查看次数

使用Jade模板系统的内联CSS

有没有办法使用Jade for Node编写内联css?

我的HTML是:

<div class="column" style="text-align:center;"></div>
Run Code Online (Sandbox Code Playgroud)

但我在指南中看不到任何对此的引用.

node.js pug

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

Expressjs - 处理中间件的错误

我正在构建一个API(使用Expressjs v4),通常我在路由中处理错误而不是使用中间件.例如:

router.use('/', function(req, res, next) {
  ...
  if (err)
    return res.status(500).send({type: "serverError", message: "Something has gone wrong on our end."});
}
Run Code Online (Sandbox Code Playgroud)

我现在意识到中间件是"走的路".我在Expressjs网站上看到了相当有限的文档:http://expressjs.com/guide/error-handling.html 但仍然不确定一些事情.

我添加了server.js:

function errorHandler(err, req, res, next) {

}
Run Code Online (Sandbox Code Playgroud)

但我该如何处理不同类型的错误(400,404,500等)?

每次发生错误时,我发现自己写了3行代码:

//A route
var err = new Error();
err.status = 404;
return next(err);
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方式访问状态:

function errorHandler(err, req, res, next) {
  console.log(err.status);
  if(err.status == "400")
    //do something
  else
    //etc etc
}
Run Code Online (Sandbox Code Playgroud)

当然有比这更简单的方法吗?我错过了什么吗?

error-handling node.js express

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

Github的gitignore配置文件,但不是Heroku

得到了一个从本地config.json文件读取的应用程序。我有两个远程存储库-Github和Heroku。Github仓库是公开的,但是配置文件的内容是私有的-因此,我添加了一个.gitignore防止该文件被推送的内容。

但是,当我将应用程序推送到Heroku时,我需要将配置文件推送到应用程序才能正常工作-如何处理这种情况?

注意:我不愿意使用Config var,因为config文件中有很多设置。

git github heroku

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