小编ant*_*rek的帖子

res.locals返回undefined

我正在尝试设置一些特定响应的变量,当我从我的中间件中记录它时,我正在undefined考虑res.locals,但是如果我从路由函数中记录它,它会返回该函数.

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(function (res, req, next) {
  console.log("res.locals from app.use middleware: ", res.locals);
  // res.locals.boom = 'nice';
  // res.locals.zoom = 'yeah!';
  next();
});
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

templating node.js express

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

多个密码哈希

我目前正在开发一个需要高级别安全性的Web应用程序,而且我一直在考虑密码处理.我应该使用散列密码,并且有足够大的盐是给定的,但使用不同的盐或不同的算法多次散列密码是有益的吗?

我不是指你应该多次散列密码来生成你的密码哈希Hash(Hash(Hash(salt + psw)))=pswhash,而是我正在考虑使用Hash(Hash(Hash(salt1 + psw)))=pswhash1Hash(Hash(Hash(salt2 + psw)))=pswhash2,然后在登录时与两者进行比较.使用此例程,攻击者不仅必须找到生成pswhash的密码,还必须找到必须正确生成两个哈希值的密码.这样,冲突的可能性几乎为零,但攻击者可以使用第二个哈希来确定第一个哈希中的密码是否正确.

有关应用程序的其他信息:该应用程序主要是我们公司的内部应用程序.Alla连接使用https处理,所有用户名对于此应用程序都是唯一的(因此您无法选择用户名),并且所有密码对于此应用程序都是唯一的(随机生成,您无法选择它们).我们主要担心的是,在我们做出反应之前,有人会对系统进行未经授权的访问.如果我们有时间反应"他们"可以找到确切密码并不是那么大的事实.

passwords hash

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

User.findOne()不是函数

passport.use('local-signup', new LocalStrategy({
    // by default, local strategy uses username and password, we will override with email
    usernameField : 'email',
    passwordField : 'password',
    passReqToCallback : true // allows us to pass back the entire request to the callback
},
(req, email, password, done) => {
    // asynchronous
    // User.findOne wont fire unless data is sent back
    process.nextTick(() => {

    // find a user whose email is the same as the forms email
    // we are checking to see if the …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

JavaScript 中 (|) 按位 OR 与 (^) 按位 XOR 之间的区别

我真的|^JavaScript 中使用OR 与XOR感到困惑,如下面的简单示例所示;

(function sayHi(n){
if(n < 1)   //base case
    return;
console.log("Hi!!" | "Hello!!") ;
sayHi(n - 1);   //recurse
})(5);


(function sayHi(n){
if(n < 1)   //base case
    return;
console.log("Hi!!" ^ "Hello!!") ;
sayHi(n - 1);   //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)
(function sayHi(n){
if(n < 1)   //base case
    return;
console.log(2 | 6) ;
sayHi(n - 1);   //recurse
})(5);


(function sayHi(n){
if(n < 1)   //base case
    return;
console.log(2 ^ 6) ;
sayHi(n - 1);   //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)

我对何时、如何、为什么、在何处适当使用|vs感到困惑 …

javascript bitwise-operators

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

Puppeteer 安装有错误

我有木偶戏的问题。我无法在我的 debian 8.7.1 上安装它。这些是步骤:

1.安装镀铬:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get -f install
sudo dpkg -i google-chrome-stable_current_amd64.deb
Run Code Online (Sandbox Code Playgroud)

2.安装nodejs & puppeteer:

apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | bash -
sudo apt-get install -y nodejs
npm i puppeteer
Run Code Online (Sandbox Code Playgroud)

当我运行时npm i puppeteer,错误是:

> puppeteer@0.11.0 install /root/node_modules/puppeteer
> node install.js

ERROR: Failed to download Chromium r499413! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
Error: Download failed: server returned code 403. URL:  https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/499413 /chrome-linux.zip
at ClientRequest.https.get.response (/root/node_modules/puppeteer/utils/ChromiumDownloader.js:195:21)
at Object.onceWrapper (events.js:316:30) …
Run Code Online (Sandbox Code Playgroud)

google-chrome-headless puppeteer

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

MutationObserver 仅用于最后一次突变

我正在使用MutationObserver保存可拖动对象中的位置更改。

它看起来像这样:

 let observer = new MutationObserver( (mutations) => {
        mutations.forEach( (mutation) => {
            this.builderData[element.id].$position.left = element.style.left;
            this.builderData[element.id].$position.top = element.style.top;
            this.saveBuilderData();
        });
    });
    observer.observe(element, { attributes : true, attributeFilter : ['style'] });
Run Code Online (Sandbox Code Playgroud)

然而,这个对每个像素的运行都改变了,所以运行了很多节省操作。我只想在它停止变异大约 1 秒后保存,或者每个回调都排除前一个。我已经用RxJava做过类似的事情,但没有用MutationObserver.

有任何想法吗?

javascript mutation-observers

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

连接超时:Nodejs Google App Engine 到 Cloud MySql

代码非常基础。使用 mysql 的简单 nodejs 应用程序。 Error: connect ETIMEDOUT当代码尝试连接到谷歌应用引擎上的谷歌云 MySql 服务器(第二代)时收到。

但是应用程序能够从我的本地机器连接到 MySql 服务器,因为IP我的机器地址被列入白名单。

App Engine 应用程序和谷歌云服务器在谷歌云控制台中属于同一个项目。所以不需要额外的权限(?)

所以我无法理解如何允许应用引擎访问 MySql 服务器。

var express    = require('express'),
    mysql      = require('mysql'),
    bodyParser = require('body-parser')
// Application initialization

var connection = mysql.createConnection({
        host     : 'ip_address',
        user     : 'root',
        password : 'password',
        database : 'database_name'
    });

var app = express();

app.use(bodyParser.urlencoded({
  extended: true
}));

app.use(bodyParser.json());

app.get('/_ah/health', (req, res) => {
    res.status(200)
    res.send({hello:'world'})
})


app.get('/', function(req, res) {
    connection.query('select * from blogs', 
        function (err, result) …
Run Code Online (Sandbox Code Playgroud)

mysql google-app-engine node.js google-cloud-sql google-cloud-platform

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

在 Laravel 的不同上下文中使用“use”关键字背后的概念是什么?

我有两个关于在 php(laravel) 中使用“use”关键字的疑问。

以下是 laravel 文档中的代码摘录:

use App\Flight;

$flights = App\Flight::all();

foreach ($flights as $flight) {
    echo $flight->name;
}
Run Code Online (Sandbox Code Playgroud)

第 1 行的代码允许我们使用 Flight 模型,第 2 行有一个获取所有记录的语句。因此,在第 2 行中我们不能只说Flight::all();而不是App\Flight::all();。两者都正确吗?它与相对路径和绝对路径相关吗?

第二个查询(与 softDeletes 相关):下面是我的模型之一的代码块:

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model
{
    use SoftDeletes;
    protected $dates = ['deleted_at'];
    protected $fillable = ['title','body'];
}
Run Code Online (Sandbox Code Playgroud)

在第 6 行,使用了以下语句:

use SoftDeletes;
Run Code Online (Sandbox Code Playgroud)

为什么我们再次使用 use 关键字 withsoftDeletes因为我们没有将其与模型一起使用,我们可以这样做:

class Post extends Model
Run Code Online (Sandbox Code Playgroud)

没有以下代码语句:

use Model;
Run Code Online (Sandbox Code Playgroud)

如果是模型。

php oop namespaces laravel laravel-5

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

用c ++确定数字大小

我得到十六进制数0x04030201,存储在一个充满零的数组的中间.我的代码必须以为单位确定此数字的大小.

我需要以两种不同的方式实现这一点.我的第一种方法是使用这样的sizeof()函数:

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int num[] = {0,0,0x04030201,0,0};

    cout<<"The size of the integer is "<<sizeof(num[2])*4<<" bits."<<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的预期输出是28位(7位有效字符的4位).但我的输出给出:

The size of the integer is 16 bits.
Run Code Online (Sandbox Code Playgroud)

我的错是什么?

c++ arrays size hex integer

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