我想简化一个对象数组.我们假设我有以下数组:
var users = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}];
Run Code Online (Sandbox Code Playgroud)
并过滤对象:
var filter = {address: 'England', name: 'Mark'};
Run Code Online (Sandbox Code Playgroud)
例如,我需要按地址和名称过滤所有用户,所以我循环过滤器对象属性并检查出来:
function filterUsers (users, filter) {
var result = [];
for (var prop in filter) {
if (filter.hasOwnProperty(prop)) {
//at the first iteration prop will be address
for (var i = 0; i < filter.length; i++) {
if …Run Code Online (Sandbox Code Playgroud) 我发现js中的请求模块无法正确处理gzip或inflate格式的http响应.
例如:
request({url:'some url'}, function (error, response, body) {
//if the content-encoding is gzip, the body param here contains binaries other than readable string. And even worse after you convert the body to buffer, u even can not gunzip it.
}
Run Code Online (Sandbox Code Playgroud)
所以我想在官方文档中使用示例代码.
var request = http.get({ host: 'izs.me',
path: '/',
port: 80,
headers: { 'accept-encoding': 'gzip,deflate' } });
request.on('response', function(response) {
var output = fs.createWriteStream('izs.me_index.html');
switch (response.headers['content-encoding']) {
// or, just use zlib.createUnzip() to handle both cases
case 'gzip':
response.pipe(zlib.createGunzip()).pipe(output); …Run Code Online (Sandbox Code Playgroud) 问题似乎很简单.我有一个数据库(测试)和一个名为(用户)的集合,所以我运行命令:
mongoexport -d test -c users -o output.json
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:

根据我迄今为止通过互联网发现的情况,这可能与文件路径有关,但我不确定如何修改这个因为我从来没有弄乱PATH变量由于糟糕的经历...
最近我们的服务器重新启动而没有正确关闭Elastic Search/Kibana.重启后,两个应用程序都在运行,但不再创建任何索引.我在调试模式下检查了logstash设置,它正在向Elastic Search发送数据.
现在我创建的所有窗口都报告此错误:
Oops! SearchPhaseExecutionException[Failed to execute phase [query], all shards failed]
Run Code Online (Sandbox Code Playgroud)
我尝试重新启动Elastic Search/Kibana,并清除了一些索引.我搜索了很多,但无法正确解决这个问题.
当前群集运行状况为RED,如图所示.

任何关于如何排除故障的帮助都是赞成的.谢谢
编辑:
[2015-05-06 00:00:01,561][WARN ][cluster.action.shard ] [Indech] [logstash-2015.03.16][1] sending failed shard for [logstash-2015.03.16][1], node[fdSgUPDbQB2B3NQqX7MdMQ], [P], s[INITIALIZING], indexUUID [aBcfbqnNR4-AGEdIR8dVdg], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[logstash-2015.03.16][1] failed to recover shard]; nested: ElasticsearchIllegalArgumentException[No version type match [101]]; ]]
[2015-05-06 00:00:01,561][WARN ][cluster.action.shard ] [Indech] [logstash-2015.03.16][1] received shard failed for [logstash-2015.03.16][1], node[fdSgUPDbQB2B3NQqX7MdMQ], [P], s[INITIALIZING], indexUUID [aBcfbqnNR4-AGEdIR8dVdg], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[logstash-2015.03.16][1] failed to recover shard]; nested: …Run Code Online (Sandbox Code Playgroud) 我试图在单个迁移文件中执行多个迁移语句,以便一次更改同一个表的多个列.
我想知道我是否以书写方式进行,或者是否有更好,更合适的方法:
module.exports = {
up: function(queryInterface, Sequelize, done) {
queryInterface.changeColumn('users', 'name', {
type: Sequelize.STRING,
allowNull: false,
require: true,
unique: true
}).success(function() {
queryInterface.changeColumn('users', 'address', {
type: Sequelize.STRING,
allowNull: false,
require: true,
unique: true
}).success(function() {
queryInterface.changeColumn('users', 'city', {
type: Sequelize.STRING,
allowNull: false,
require: true,
unique: true
}).success(function() {
queryInterface.changeColumn('users', 'state', {
type: Sequelize.STRING,
allowNull: false,
require: true,
defaultValue: "ncjnbcb"
});
done();
});
});
});
}
};
Run Code Online (Sandbox Code Playgroud)
但是我面临一个错误:
TypeError:undefined不是函数
由于我在迁移中找不到任何调试错误的方法,如果有人帮助我解决它或者如果可能的话,告诉我们如何找出迁移中的错误的方式将是很好的.
我正在尝试过滤弹性搜索的结果,它必须返回与搜索文本80%兼容的结果.
当我只为一把钥匙做这件事时,minimum_should_match作品完美无缺:
{
"size":30,
"from":930,
"query":{
"filtered":{
"query":{
"query_string":{
"default_field":"campo1",
"query":"portugues",
"minimum_should_match":"80%"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用多个密钥进行搜索时,minimum_should_match无法正常工作,返回70%兼容性的结果:
{
"size":30,
"from":123420,
"query":{
"filtered":{
"query":{
"query_string":{
"default_operator":"or",
"query":"portugues",
"fields":[
"campo1",
"campo2^5",
"campo3"
],
"minimum_should_match":"80%"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我需要minimum_should_match按键设置,但我不知道如何做同样的事情.如果有人可以帮助我这样做,那就太棒了.
我正在尝试加密并相应地解密一个字符串。
当我将编码方案指定为 ' utf-8 ' 时,我得到了预期的结果:
function encrypt(text) {
var cipher = crypto.createCipher(algorithm, password)
var crypted = cipher.update(text, 'utf8', 'hex')
crypted += cipher.final('hex');
return crypted;
}
function decrypt(text) {
var decipher = crypto.createDecipher(algorithm, password)
var dec = decipher.update(text, 'hex', 'utf8')
dec += decipher.final('utf8');
return dec;
}
//text = 'The big brown fox jumps over the lazy dog.'
Run Code Online (Sandbox Code Playgroud)
输出:(utf-8 编码)
但是当我尝试使用 ' base-64 ' 时,它给了我意想不到的结果:
function encrypt(text) {
var cipher = crypto.createCipher(algorithm, password)
var crypted = cipher.update(text, 'base64', 'hex')
crypted += …Run Code Online (Sandbox Code Playgroud) 我正在尝试处理[ 编码和加密 ] 音频文件,然后使用npm模块knox上传到S3
它被处理但在上传到S3之前,它弹出了这个错误:
错误:EMAXBUFFER:Upstream(
audio)在插入接收器之前超时.等待4500ms后仍未使用.您可以通过更改maxTimeToBuffer选项来配置此超时.
我尝试上传不同大小的文件,但它甚至发生在一个小文件上.我曾尝试过互联网和大多数地方的人们提供或建议的所有可能的解决方案,它是Skipper-S3,我找不到KNOX的地方.
如果有人可以帮助我,那将是很棒的.
我在堆栈上也提到了一些现有的问题,但仍然是徒劳的.
我正在使用sequelize ORM和mySQL数据库.
我有一个属性类型为TEXT的模型:
description: {
type: Sequelize.TEXT,
unique: true
},
Run Code Online (Sandbox Code Playgroud)
当我尝试为相应的模型创建表时,它给出一条错误消息:
未处理的拒绝SequelizeDatabaseError:ER_BLOB_KEY_WITHOUT_LENGTH:BLOB/TEXT列'描述'用于密钥规范而没有密钥长度
当与postgreSQL一起使用时,这很好用.我能想到的这个错误的可能原因可能是mySQL不支持TEXT数据类型,因此,我必须将其指定为LONGTEXT.
如果我的想法正确或有其他原因,如果有人可以提供帮助.
我有一个数组,其中每个元素对应一个字母数字字符串,可以说:
用户 ID : ['Ab526', 'shvx23', '23636dsd']
我想将其转换为这样的格式,以便我可以将此字符串列表传递给mySQL 查询的 IN 子句,如下所示:
Select * from Users where userIds in '(...)';
我尝试使用array.join()和许多其他方法,在某个地方建议但都是徒劳。
var userIds = ['Ab526', 'shvx23', '23636dsd']
var ids = userIds.join(',');
var query = 'Select * from Users where userIds in (' + ids + ')';
console.log(query);Run Code Online (Sandbox Code Playgroud)
结果是:
Select * from Users where userIds in ('Ab526, shvx23, 23636dsd');
如果有人可以提出一个解决方案,告诉我如何实现我想要的目标,那将会有很大的帮助。
我正在尝试使用node-inspector调试我的代码,但我一次又一次地在终端窗口中收到此错误
$ sudo sails debug
info: Running app in debug mode...
info: You probably want to install / run node-inspector to help with debugging!
info: https://github.com/node-inspector/node-inspector
info: ( to exit, type <CTRL>+<C> )
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Agent.Server._listen2 (net.js:1156:14)
at listen (net.js:1182:10)
at Agent.Server.listen (net.js:1267:5)
at Object.start (_debugger_agent.js:20:9)
at startup (node.js:86:9)
at node.js:814:3
Run Code Online (Sandbox Code Playgroud)
解决
错误:听EADDRINUSE
我试过关闭其他终端窗口(我的节点检查器正在运行).我已经在StackOverflow上提到了答案,但它们没有用,我甚至尝试过这个命令来杀死进程:
$ killall -9 node
No matching processes belonging to you were found
Run Code Online (Sandbox Code Playgroud)
但仍然无法正常工作.有人请帮我解决这个问题.
我有一个这种格式的对象:
var request = {
"student": [
[
"name",
"age"
],
[
"Tom",
12
],
[
"Jack",
13
]
]
};
Run Code Online (Sandbox Code Playgroud)
我想把它变成这个:
var request = {
"student": [
{
"name": "Tom",
"age": 12
},
{
"name": "Jack",
"age": 13
}
]
}
Run Code Online (Sandbox Code Playgroud)
我试过这样做:
var response = [];
var keysCount = req.result[0].length;
var responseCount = req.result.length - 1;
var i = 0,
j = 0,
key;
for (j = 0; j < responseCount; j++) {
for (i = 0; i < …Run Code Online (Sandbox Code Playgroud) node.js ×6
arrays ×3
javascript ×3
mysql ×2
sails.js ×2
sequelize.js ×2
amazon-s3 ×1
arraylist ×1
base64 ×1
buffer ×1
encoding ×1
encryption ×1
export ×1
filter ×1
http ×1
indexing ×1
kibana ×1
logstash ×1
migration ×1
mongodb ×1
npm ×1
object ×1
request ×1
search ×1
sqldatatypes ×1
string ×1
terminal ×1
utf-8 ×1
zlib ×1