我正在构建一个API,接受POST给它的JSON数据.
我有以下user
结构,最近我将password
数据类型更改为[]byte
from,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)
关于修复的任何想法?
我以前一直在使用这个:
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) 我正在使用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样式时存在局限性。
我正在尝试测试此类方法:
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
部分?
我最近问了一个类似的问题,但随着问题的发展,我决定创建一个新问题 - 我希望这是预期的方法吗?
将我的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)
但是,我仍然遇到同样的问题.
谁能帮忙???
只是查看我的Rails 4应用程序的database.yml文件,发现生产数据库没有任何设置 - 只有测试和开发数据库.
我实际上没有任何问题,但希望通过发布此问题来避免其他潜在问题.
在本地我使用PG数据库,我也使用PG数据库在Heroku上托管我的应用程序.
我是否应该在yml中为生产数据库文件设置一些设置,因为我真的不确定?
有没有办法使用Jade for Node编写内联css?
我的HTML是:
<div class="column" style="text-align:center;"></div>
Run Code Online (Sandbox Code Playgroud)
但我在指南中看不到任何对此的引用.
我正在构建一个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)
当然有比这更简单的方法吗?我错过了什么吗?
得到了一个从本地config.json
文件读取的应用程序。我有两个远程存储库-Github和Heroku。Github仓库是公开的,但是配置文件的内容是私有的-因此,我添加了一个.gitignore
防止该文件被推送的内容。
但是,当我将应用程序推送到Heroku时,我需要将配置文件推送到应用程序才能正常工作-如何处理这种情况?
注意:我不愿意使用Config var,因为config文件中有很多设置。