NodeJS:Crypto – 无论input什么,我为什么得到相同的散列?

我正在使用encryption哈希一个string与盐200次。 我有一个奇怪的行为,散列总是相同的。 我现在已经回到了正确的结果,但是我想知道是否有人能告诉我为什么。 这是每次产生相同散列的原始代码(假定相同的盐): const crypto = require('crypto'); console.log(hashPwd('abc', '11111111111111111111111111111111')); console.log(hashPwd('def', '11111111111111111111111111111111')); function hashPwd(password, hexSalt){ var salt = hex2a(hexSalt); var hashPwd = crypto.createHash('sha256').update(salt + password); for(var x =0; x < 199; x++){ hashPwd = crypto.createHash('sha256').update(salt + hashPwd); } return hashPwd.digest('hex'); } //From: http://stackoverflow.com/questions/3745666/how-to-convert-from-hex-to-ascii-in-javascript function hex2a(hexx) { var hex = hexx.toString();//force conversion var str = ''; […]

Mongoose:按date运行计划任务查询

我想为医院的病人创造一个预定的工作。 患者将在每个月的reg_date 。 我在早上8点使用new Date().getDate()在我的计划任务中运行,向我的患者发送短信。 同时,我一直使用string格式date来保存我的mongoDB中的reg_date。 这里是我的mongoDB文档的片段: { customer: "John", reg_date: "2017-02-17T16:39:26.969Z" } 我一直在冲浪的解决scheme,但什么都没有,所以我决定张贴自己。 这是我想要做的: customer.find({"reg_date.getDate()" : new Date(2017, 03, 17).getDate()}) .then(function(data) { for (var key in data.length) { sendTheSMS(key[data]); }; }); 例如:我正在做的是“我想让每个在本月17日注册的病人都给他们发短信”。 任何帮助将不胜感激。 :d

Express js 4x:req.params返回空对象

试图获得expressionjs的URl参数,但得到空的对象。 var password= require('./routes/password'); app.use('/reset/:token',password); password.js router.get('/', function(req, res, next) { console.log(req.params); res.send(req.params); }); console.log(req.params)输出是{} 访问url: http://localhost:3000/reset/CiVv6U9HUPlES3i0eUsNwK9zb7xVZpfHsQNuzMNWqLlGA4NJKoagwbcyiUZ8

在express js的不同文件中访问db连接的同一个实例

我有4个文件: 1) db.js – mongodb connection 2) socket.js – for all socket events 3) route.js – route for / 4) app.js – main start point for express app 我想从db.js in socket.js and route.js共享相同的数据库实例,以便连接到数据库只有一次。 我已经尝试了2种方法: 1) require db.js in both files, but this creates new connection every time require is called. 2) pass the collections in […]

SailsJs Response(res)生命周期

有没有办法挂起一个函数或任务来航行的响应,在发射function之前,例如,我有几个res.ok(object_output) ; 基于一些条件和在单独的控制器,我想拦截每个res.ok(就像政策 )做一些事情之前,返回响应。

React – variables是未定义的而不是true / false – 组件首先被渲染?

好吧,所以我试图实现的是一个函数,它返回一个不同的标签,取决于文件是否存在,或不。 到目前为止,代码本身似乎正在工作,但顺序是错误的。 我所做的是打印出“文件存在”或“不存在”的function部分进行实际检查,将boolean保存到testvariables中,使用所述variables来确定最终返回哪个button。 现在发生了什么,即使第一部分打印出“文件确实存在”(应该保存为true ), console.log(test)进一步下降返回undefined ,这当然,导致条件不工作。 我相信我可以忽略一些非常简单的东西,但我无法弄清楚。 import React from 'react'; import RaisedButton from 'material-ui/RaisedButton'; import fs from 'fs'; var ConfigChecker = React.createClass({ render: function(){ var test; fs.open('./App.js', 'r', (err, fd) => { if (err) { if (err.code === 'ENOENT') { console.log('file does not exist'); test = false; } throw err; } console.log('this should […]

如何在JavaScript中parsing后立即处理asynchronous结果?

我有一个asynchronous函数需要相当多的时间来callback,需要运行一个input数组,并将结果传递给后续操作。 我最初的方法是基于Promise的: Promise.all(entries.map((entry) => { return new Promise((resolve, reject) => { processEntry(entry, resolve); }); })).then((outputs) => { outputs.forEach((output) => { return console.log(output); }); callback(); }); 与此有关的问题是,输出只在得到解决之后得到处理(或在这种情况下logging)。 为了让他们尽快解决问题,我尝试了这种更老式的方法: var i = 0; entries.forEach((entry) => { processEntry(entry, (output) => { console.log(output); if (++i >= entries.length) callback(); }); }); 这适用于我特殊的情况,但似乎不是一个正确的通用解决scheme,因为不再保证输出顺序。 为了达到预期的效果,至今我可以想到的最好的方法是在entries填入输出为原始索引的数组,并且每当新的输出出现时,就用数组的起始处理输出单独的滑动索引,当它达到一个undefined时候停止。 有没有更好的方法来实现这一目标?

如何使用应用程序/ x-www-form-urlencoded头和URLSearchParams使用isomorphic-fetch进行POST

这是一个正常工作的CURL示例: curl –request POST \ –url <url> \ –header 'authorization: Bearer <authorization token>' \ –header 'content-type: application/x-www-form-urlencoded' \ –data 'category=1&userId=<uuid>' 我试图重现这个请求使用同构获取 。 我试过这个: const searchParams = new URLSearchParams(); searchParams.set('category', category); searchParams.set('userId', userId); return fetch(`<url>`, { method: 'POST', headers: { 'Authorization: Bearer <authorization token>', 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: searchParams })` 但是我得到一个411状态码错误响应( 需要的长度 ) […]

对HEAD请求使用express sendFile

sendFile用于发送文件,并且还从文件中找出一些有趣的标题(如内容长度)。 对于HEAD请求,我会理想地想要完全相同的标题,但只是跳过正文。 在API中似乎没有这个选项。 也许我可以重写响应对象中的某些东西来阻止它发送任何东西? 这是我得到的: res.sendFile(file, { headers: hdrs, lastModified: false, etag: false }) 有没有人解决这个?

Mongoose模型作为ES6类与inheritance链

我正在尝试创build一个ES6类层次结构来实现mongoose和mongodb查询之间的caching层。 我看到这个公关https://github.com/Automattic/mongoose/pull/4668和基于这写下面的代码。 'use strict' const mongoose = require('mongoose'); mongoose.connect("mongodb://host:port/db", {}); mongoose.connection.on('error', console.error.bind(console, 'DB connection failed', arguments)); mongoose.connection.once('open', console.log.bind(console, 'Connected to DB')); class Base extends mongoose.Model { save() { console.log('Base class save()') return super.save(); } findOne(query){ console.log('Base class find…'); return super.findOne(query); } } class Derived extends Base{ save(){ console.log('Derived class save()'); super.save(); } static getOne(){ console.log('Derived […]