小编ode*_*fla的帖子

詹金斯无法找到npm

在这个linux服务器上,我有一个名为"myuser"的用户.对于这个用户,当回显路径时,我得到这个:

/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/ usr/sbin目录:在/ usr/bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏:/卡/箱

拥有节点应用程序,在手动部署时运行:

npm i
Run Code Online (Sandbox Code Playgroud)

它有效.

现在,我安装了詹金斯.我正在尝试安装的Jenkins项目位于:

/var/lib/jenkins/workspace/test
Run Code Online (Sandbox Code Playgroud)

构建正在执行shell脚本.在那个窗口我输入了:

#!/bin/bash
npm i
Run Code Online (Sandbox Code Playgroud)

与Jenkins一起构建时,我得到了这个:

[test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

如果我只写:

echo $PATH
Run Code Online (Sandbox Code Playgroud)

在Jenkins shell中,我得到了这个:

[test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

如您所见,我安装了nodejs插件.无论如何,当使用Jenkins shell时,找不到npm和even节点.如何让Jenkins知道npm/node在哪里?我试着先在shell中写这个:

$ PATH = /家/ myuser的/ .nvm /版本/节点/ v6.11.1 /箱

但仍然没有运气.

linux node.js npm jenkins

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

json web令牌在哪里保存数据?

我有一个使用json web令牌的节点应用程序:

var jwt = require('jsonwebtoken');

如果登录成功,则此库以这种方式创建令牌:

var payload = {mydata: 'abcd'};
var token = jwt.sign(payload, 'secret', {
    expiresIn: 28800
});

return {
    success: true,
    message: 'Success',
    token: token
};
Run Code Online (Sandbox Code Playgroud)

我不明白的是令牌存储在服务器上的位置.如果收到令牌的同一用户调用受保护资源,那么我有这一行:

jwt.verify(token_sent_by_used, 'secret', function (err, res) {
    if(!err){
        res.json({result: 'success'});
    }
    else{
        res.json({result: 'failure'});
    }
}
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是我找不到解释如何在跨多台机器运行应用程序时处理jwt.如果我的后端放在不同的机器上,并且用户向负载均衡器发出请求,那么请求可以命中任何机器.如果jwt在文件系统上写入令牌数据,那么我想如果请求命中的机器不是创建令牌的机器,则可能会出现问题.使用会话时,可以将会话处理程序设置为数据库.你如何用jwt解决这个问题?

****编辑****

好吧,让我们来看看.我有一个在机器.10上运行的节点应用程序,同样的节点应用程序也在机器上运行.11.两台不同的机器.

我去机器.10并发送用户名密码.机器上的应用程序.10检查用户名/密码.他们都还好.Machine .10创建一个jwt令牌并将其发送给我.

我现在发出一个curl请求(对一个需要有效jwt-token的资源)来加工.11并发送机器.10已经发送给我的jwt-token.机器.11不会抱怨jtw-token?它会被认为有效吗?即使它不是在机器上创建的.11?

node.js jwt

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

在elasticsearch中匹配带减号的字符串

所以在数据库中我有这个条目:

Mark-Whalberg
Run Code Online (Sandbox Code Playgroud)

使用术语搜索时

Mark-Whalberg
Run Code Online (Sandbox Code Playgroud)

我得到不匹配。

为什么?减号是我理解的特殊字符吗?它象征着“排除”?

查询是这样的:

{"query_string": {"query": ' Mark-Whalberg ', "default_operator": "AND"}}

搜索其他所有内容,例如:

Mark
Whalberg
hlb
Mark Whalberg
Run Code Online (Sandbox Code Playgroud)

返回匹配。

这是存储为两个不同的部分吗?在搜索词中包含减号时如何获得匹配项?

- - - - - - - 编辑 - - - - - - -

这是当前的查询:

var fields = [
    "field1",
    "field2",
];

{"query_string":{"query": '*Mark-Whalberg*',"default_operator": "AND","fields": fields}};
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

使用纯 Javascript 重复 HTML 代码

有没有办法让 html/javascript 代码重复 html 代码?基本上,我需要使用普通的 javascript,同时我需要在 for 循环中构建 html 元素。所以在html中我可以有:

<div>col1</div>
<div>col2></div>
<div>col3</div>
Run Code Online (Sandbox Code Playgroud)

问题是上面的html代码可以有几组。我现在正在做的是在 javascript 代码中编写 html。我想让它更干净,并拥有它所属的 html 结构,它位于 html 页面中。

html javascript

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

上课不听事件

我有这个javascript代码:

$('.get_summary').click(function(ev){
    alert("get_summary");
});
Run Code Online (Sandbox Code Playgroud)

具有该类的html按钮是在javascript中动态创建的.使用firebug,我可以看到该按钮获得了类"get_summary".但是,当我点击按钮时没有任何反应.控制台中的任何错误都没有写入.

查看chrome中的"Events" - 面板,我看到按钮实际上没有收听任何事件.为什么?我在类绑定到函数的文件中放了一个警告.警报出现了.我真的不知道在哪里我应该理解为什么班级没有听这个功能.

javascript jquery

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

列必须出现在GROUP BY子句中

我有这个问题:

SELECT 
"EventReadingListItem"."id"
, "EventReadingListItem"."UserId"
FROM "EventReadingListItems" AS "EventReadingListItem" 
group by "EventReadingListItem"."EventId";
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了错误

Column "EventReadingListItem"."id" must appear in the GROUP BY clause or be used in an aggregate function.
Run Code Online (Sandbox Code Playgroud)

为什么?我已经阅读过类似的问题,但我真的不明白为什么这个简单的小组不起作用.是因为group by中的字段不是"EventReadingListItem"吗?

postgresql

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

如何捕捉multer中的错误

我已经阅读了multer的文档。但是我在代码中的当前设置是不同的,这让我很难理解如何处理错误。现在很重要,因为它发生(仅一次)文件未存储在服务器上,但代码继续将信息保存在数据库中,就好像文件的存储已经工作一样。但它可能没有。

const multer = require('multer');

var docPath = "path_to_disk_where_to_store_files";

var storage = multer.diskStorage({
    inMemory: true,
    destination: function (request, file, callback) {
        callback(null, docPath);
    },
    filename: function (request, file, callback) {
        //Just a function that creates an unique name with timestamp
        renamedFile = helpers.createUniqueName(file.originalname);
        callback(null, renamedFile);
    }
});

var fileFilter = function (req, file, cb) {
    var path = require('path');
    var ext = path.extname(file.originalname);
    if (file.mimetype !== 'application/pdf' || ext.toLowerCase() != '.pdf') {
        req.fileValidationError = 'goes wrong on the mimetype';
        return …
Run Code Online (Sandbox Code Playgroud)

node.js multer

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

如何验证数组中是否存在键

我有这个变量:

var teams = [{manutd: true, barcelona: true, real: false}];
Run Code Online (Sandbox Code Playgroud)

给定一个字符串,我想知道团队的条目中是否有条目。所以如果我有:

var team = "real"
Run Code Online (Sandbox Code Playgroud)

我想查询“teams”并获得true,因为“real”是数组中的键之一。我试过包含但它失败了。也许是因为键不是字符串?

javascript

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

html模式仅接受数字

我有这个简单的html:

<input type="text" 
       placeholder="onlynumbers" 
       name="onlynumbers" 
       pattern="\d{1,5}"  
       maxlength="5">
Run Code Online (Sandbox Code Playgroud)

我需要将字符数限制为5。可以。但是我仍然可以输入数字以外的其他字符。我尝试了各种模式,例如:

pattern = "[0-9]"
Run Code Online (Sandbox Code Playgroud)

但是仍然可以键入数字以外的其他字符。

如果我将type属性更改为number,则在输入字段中仅接受数字,但该maxlength属性不起作用。我可以输入任意多个数字。我听说这是Chrome中的错误。那是问题吗?

是否有跨浏览器的方式来满足这些要求:

一个输入字段(文本或数字,无关紧要),仅接受数字,不允许用户输入超过5个数字。

html javascript regex

0
推荐指数
2
解决办法
3万
查看次数

不得与弹性搜索一起使用或在弹性搜索中

我的弹性搜索架构中有 4 个字段。

date
status
type
createdAt
Run Code Online (Sandbox Code Playgroud)

现在,我需要获取所有行

date=today
status = "confirmed" 
and where type is not equals to "def"
Run Code Online (Sandbox Code Playgroud)

不过,如果

type=def exists 
Run Code Online (Sandbox Code Playgroud)

但仅当该字段createdAt不等于时today

我当前的查询如下所示:

{
    must: [
        { "bool":
            {
                "must": [
                    {"term": {"date": 'now/d'}},
                    {"term": {"status": 'confirmed'}},
                ]
          }
        }
    ],
    mustNot: [
        {"match": {'createdAt': 'now/d'}},
        {"match":{"type": "def"}}
    ]
}
Run Code Online (Sandbox Code Playgroud)

获取type 不等于“ def”的行。但是,如果某行具有type=def AND createdAT any date but today,则该行不会显示。

我究竟做错了什么?

elasticsearch

0
推荐指数
1
解决办法
9049
查看次数

标签 统计

javascript ×4

node.js ×3

elasticsearch ×2

html ×2

jenkins ×1

jquery ×1

jwt ×1

linux ×1

multer ×1

npm ×1

postgresql ×1

regex ×1