我正在尝试设置一些特定于响应的变量,当我从我的中间件中记录它时,我正在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)
有任何想法吗?
我目前正在开发一个需要高级别安全性的Web应用程序,而且我一直在考虑密码处理.我应该使用散列密码,并且有足够大的盐是给定的,但使用不同的盐或不同的算法多次散列密码是有益的吗?
我不是指你应该多次散列密码来生成你的密码哈希Hash(Hash(Hash(salt + psw)))=pswhash,而是我正在考虑使用Hash(Hash(Hash(salt1 + psw)))=pswhash1和Hash(Hash(Hash(salt2 + psw)))=pswhash2,然后在登录时与两者进行比较.使用此例程,攻击者不仅必须找到生成pswhash的密码,还必须找到必须正确生成两个哈希值的密码.这样,冲突的可能性几乎为零,但攻击者可以使用第二个哈希来确定第一个哈希中的密码是否正确.
有关应用程序的其他信息:该应用程序主要是我们公司的内部应用程序.Alla连接使用https处理,所有用户名对于此应用程序都是唯一的(因此您无法选择用户名),并且所有密码对于此应用程序都是唯一的(随机生成,您无法选择它们).我们主要担心的是,在我们做出反应之前,有人会对系统进行未经授权的访问.如果我们有时间反应"他们"可以找到确切密码并不是那么大的事实.
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 中使用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感到困惑 …
我有木偶戏的问题。我无法在我的 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) 我正在使用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.
有任何想法吗?
代码非常基础。使用 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
我有两个关于在 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)
如果是模型。
我得到十六进制数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)
我的错是什么?