小编Cha*_*ish的帖子

Nodejs + Passport:如何添加更多用户信息

我是Nodejs的新手,正在寻找用户凭证管理,我认为Passport是个不错的选择.

但在Passport的注册策略中,我只看到保存的用户信息是电子邮件和密码.

我需要更多的用户信息,如全名,工作,注册时间,上次活动时间等.

那么我怎样才能在Passport中做到这一点?

node.js passport.js

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

Express.js POST req.body为空

所以我在server.js文件中有以下代码,我正在运行node.js. 我正在使用express来处理HTTP请求.

app.post('/api/destinations', function (req, res) {
  var new_destination = req.body;
  console.log(req.body);
  console.log(req.headers);
  db.Destination.create(new_destination, function(err, destination){
    if (err){
      res.send("Error: "+err);
    }
    res.json(destination);
  });
});
Run Code Online (Sandbox Code Playgroud)

我在终端中运行以下内容:

curl -XPOST -H "Content-Type: application/json" -d '{"location": "New York","haveBeen": true,"rating": 4}' http://localhost:3000/api/destinations
Run Code Online (Sandbox Code Playgroud)

运行该server.js后打印出以下内容.

{}
{ host: 'localhost:3000',
  'user-agent': 'curl/7.43.0',
  accept: '*/*',
  'content-type': 'application/json',
  'content-length': '53' }
Run Code Online (Sandbox Code Playgroud)

所以req.body是{}.我阅读了其他关于类似问题的Stack Overflow帖子,其中由于正文解析器,内容类型不正确.但这不是问题,因为内容类型是application/json.

任何想法如何获得请求的实际主体?

提前致谢.

javascript json node.js express body-parser

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

Zombie.js pressButton Long Callback Delay

我一直试图通过使用一堆console.log来解决这个问题,但仍无法弄清楚为什么这些加载时间如此之长.

所以我beforeEach在我的Mocha单元测试文件中有以下代码.

browser.fill('email', 'test1@test.com');
browser.fill('password', 'testtest');
browser.pressButton('Login').then(function () {
    console.log("#100 - "+ new Date().getTime());
    done();
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下按下按钮将有一些重定向,然后最终显示仪表板页面.在该html文件的底部,我有以下代码.

<script>
    $(document).ready(function () {
        console.log("#200 - "+ new Date().getTime());
    });
</script>
Run Code Online (Sandbox Code Playgroud)

因此,在运行测试之后,如果我在#100 减去该值之后取值,#200则总是大约5000-6000.因为#200总是在#1005-6秒之前打印.

我不明白为什么加载页面后,Zombie.js需要额外的5-6秒才能调用该回调函数.

Zombie.js在加载页面后是否有一些等待或延迟?还有什么可能导致页面加载和Zombie.js调用该回调函数之间的5-6秒延迟?

编辑我现在有同样的问题,但像50000毫秒.在我的所有测试中,这真的非常快.我仍然无法弄清楚为什么会这样.

编辑2

如果我添加browser.debug()到我的测试中,它会在最后打印以下内容.它还会打印很多其他内容,但这种情况很快发生.我认为以下可能是问题所在.只是不确定它为什么这样做或如何解决它.

zombie Fired setInterval every 5000ms +11ms
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired setInterval every 5000ms +5s
zombie Fired …
Run Code Online (Sandbox Code Playgroud)

javascript performance mocha.js node.js zombie.js

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

调整文本覆盖的厚度

我有一个具有以下CSS属性的元素:

text-decoration: overline;
text-decoration-color: blue;
Run Code Online (Sandbox Code Playgroud)

问题是上线非常小,根本不是很厚.我想增加这个上线的厚度.

我做了一些研究,看起来没有CSS属性来增加上线的厚度.

我已经阅读了有关添加顶部边框的某些内容,但顶部边框并未位于文本正上方,而是将整个元素向下移动到页面上.

由于我在一个bootstrap导航栏中执行此操作,因此向下移动的元素是一个非常大的问题.

有关如何使上线更明显并增加线条厚度的任何想法?

下面是完整的代码片段,包括我正在使用的HTML.

.active {
  text-decoration: overline;
  text-decoration-color: #DF3E38;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">My Site</a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav navbar-right">
        <li class="active"><a href="#">Sign Up</a>
        </li>
        <li><a href="#">Login</a>
        </li>
      </ul>
    </div>
  </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap

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

如何在 VS Code 中在行首或行尾获取多个光标?

在 Atom 中,您可以选择多行,然后点击Command + Shift + L左箭头键或右箭头键,将多个光标放置在每个选定行的开头或结尾。

当尝试在 VS Code 中执行相同的命令时,它不起作用?如何在 VS Code 中实现相同的行为?

原子多光标线

keyboard-shortcuts visual-studio-code

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

如何根据 CSS 首选颜色方案更改图像源?

我正在尝试将新的 CSSprefers-color-scheme媒体查询集成到我的网站中。我有一个img(图像)元素,其中图像非常深蓝色。新的黑暗模式设置看起来真的很糟糕。

有没有办法根据该 CSS 媒体查询轻松更改此图像的来源?

我考虑过有 2 个img元素并display根据该媒体查询将其设置为隐藏或不隐藏。但这感觉有点像一个混乱的解决方案,并且有它的缺点,例如浏览器下载两个图像。

我也考虑过使用 CSS 技巧,background-image但我更反对使用 2 个img元素并隐藏和显示它们。

最后,当然我认为这可以使用 JavaScript 实现。但是这个站点特别是我非常考虑兼容性,并且一些浏览器允许用户一起关闭 JavaScript,所以在这种情况下我不喜欢 JavaScript 解决方案。

除了上面列出的那些解决方案之外,还有其他方法可以做我想做的事情吗?

html css

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

动态删除对象属性 JavaScript

我有以下代码来获取给定对象的键。因此,对于对象,{"hello": {"data": {"a": "world", "b": "random"}}}如果传入的键是hello.data.a,则输出将是world

(object, key) => {
    const keyParts = key.split(".");
    let returnValue = object;
    keyParts.forEach((part) => {
        if (returnValue) {
            returnValue = returnValue[part];
        }
    });
    return returnValue;
}
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何以相同的方式动态删除属性。因此,例如对于相同的对象和键,它会将对象变异为{"hello": {"data": {"b": "random"}}}.

基本上,我想同样的行为delete object.hello.data.a。但问题是该hello.data.a部分是传入的动态字符串。当然,delete object[key]由于键具有嵌套级别,因此类似的东西不起作用。如果它只有 1 级深,它会起作用,但不适用于嵌套项目。

另一个重要的注意事项是,在这种情况下,性能极其重要。因此,尽管创建一个新对象并复制除我要删除的对象之外的所有属性可能会起作用,但我非常担心该对象与delete关键字的性能影响。

由于其他外部因素,我也不想将属性值设置为nullundefined。我希望从对象中实际删除密钥。

我怎样才能做到这一点?

javascript

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

Amazon Web Services DynamoDB 多个分区键

有没有办法在 DynamoDB 表中拥有多个分区键?我目前有一个 ID 字段作为分区键。这意味着我只能get在传入 ID 时使用。我希望能够get用于其他字段,例如电子邮件、名字、姓氏等。

我目前的方法是扫描数据库并运行循环以找到我正在寻找的记录。这不是很好的可扩展性,也不是一个好方法。

通过添加更多分区键或是否有我没有看到的另一种方法来做到这一点的任何好方法?

javascript database amazon-web-services node.js amazon-dynamodb

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

找不到 CodeDeploy PM2 命令

我正在尝试使用 AWS CodeDeploy 来部署我的应用程序。一切似乎都运行良好,但出现以下错误。

[stderr]/opt/codedeploy-agent/deployment-root/f1ea67bd-97bo-08q1-b3g4-7b14becf91bf/d-WJL0QLF9H/deployment-archive/scripts/start_server.sh:第3行:pm2:找不到命令

下面是我的 start_server.sh 文件。

#!/bin/bash
pm2 start ~/server.js -i 0 --name "admin" &
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用 SSH 以用户 ubuntu 身份连接到我的服务器并运行该 bash 文件,并且它运行完美,没有错误。所以我知道 PM2 已安装并在该用户上正常工作。

下面也是我的 appspec.yml 文件。

version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu
hooks:
  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 300
      runas: ubuntu
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: ubuntu
Run Code Online (Sandbox Code Playgroud)

也不确定这是否有帮助,但这是我的 stop_server.sh 文件。

#!/bin/bash
npm install pm2 -g
pm2 stop admin || true
pm2 delete admin || true
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

linux bash node.js npm aws-code-deploy

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

iOS 代码签名 Fastlane 匹配错误

尝试使用 Fastlane 将我的应用程序部署到 iTunes Connect 时,我收到以下信息。

不久前它还在工作,我不确定为什么突然它现在失败了。我最近从 CircleCI 1.0 升级到 CircleCI 2.0,那是它开始失败的时候。上次在 CircleCI 1.0 上完成的部署是成功的,但在 CircleCI 2.0 上的每个人都失败了。

任何想法如何使用 Fastlane 修复此代码签名错误?

+-----------------------+-------------------------------------------------+
|                        Summary for match 2.94.0                         |
+-----------------------+-------------------------------------------------+
| type                  | appstore                                        |
| app_identifier        | ["com.charliefish.ios.test"]             |
| force                 | true                                            |
| git_url               | https://github.com/fishcharlie/myprivatedataA.git |
| git_branch            | master                                          |
| username              | charlie@test.com                              |
| keychain_name         | login.keychain                                  |
| readonly              | false                                           |
| team_id               | 86LATJ1793                                      |
| verbose               | false                                           |
| …
Run Code Online (Sandbox Code Playgroud)

deployment code-signing ios fastlane app-store-connect

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