简单的反移位和唯一性在JavaScript中不起作用
非常简单的代码,却让我绞尽脑汁几个小时?正如您在简单的反移位和唯一性在JavaScript中不起作用,javascript,node.js,redis,Javascript,Node.js,Redis,非常简单的代码,却让我绞尽脑汁几个小时?正如您在add函数中看到的,它基本上需要2个参数;IP地址和UNIX日期 const redis = require("redis"), client = redis.createClient(); const {promisify} = require('util'); const getAsync = promisify(client.get).bind(client); const setAsync = promisify(client.set).b
add
函数中看到的,它基本上需要2个参数;IP地址和UNIX日期
const redis = require("redis"), client = redis.createClient();
const {promisify} = require('util');
const getAsync = promisify(client.get).bind(client);
const setAsync = promisify(client.set).bind(client);
_ = require('lodash');
_weg = require('wegweg')({
globals: false
});
module.exports = {
add: async function (ip, cday) {
var key = _weg.md5('dact:' + ip);
return await getAsync(key).then((result) => {
let value;
if (result == null) {
value = [];
} else {
value = result;
}
value = value.unshift(cday);
value = _.uniq(value);
return setAsync(key, value);
});
}
};
因此,如果我继续前进并通过这两项:
await ping_history.add("127.0.0.1", 1562774400);
似乎没有插入数组或其他什么
键
应该是一个MD5,值
应该是一个日期数组,所有日期都是唯一的。取消移位方法修改数组,但不返回新数组。unshift
的返回值是数组的新长度。那以后呢
value = value.unshift(cday);
value
变量现在包含一个数字,而不是数组。
value=[1,2,3,4];
值=值。取消移位(10);
console.log(值)代码>