如何在不使用查询字符串且仅使用一个路由名称的情况下允许可选参数到路由中?我目前正在指定每个路线五次以允许任何部件组合:
所有部件必须是可选的.路线必须解决任何变化.
.state("login", { url: "/login", templateUrl: "login.html", params: { a: null, b: null, c: null, d: null } })
.state("loginA", { url: "/login/:a", templateUrl: "login.html", params: { b: null, c: null, d: null } })
.state("loginAB", { url: "/login/:a/:b", templateUrl: "login.html", params: { c: null, d: null } })
.state("loginABC", { url: "/login/:a/:b/:c", templateUrl: "login.html", params: { d: null } })
.state("loginABCD", { url: "/login/:a/:b/:c/:d", templateUrl: "login.html" })
Run Code Online (Sandbox Code Playgroud)
必须有一个更容易/更清洁/更少丑陋的方式.
Auth0团队创建了一个名为"angular-jwt"的东西,它有一个jwtHelper类.这个东西成功地解码了一个本地JWT而没有我在服务器上使用的秘密.这怎么发生的?如果它们不安全,那么使用秘密签名/加密它们有什么意义呢?
加密令牌的服务器上的函数(使用"jsonwebtoken"):
function createToken (user) {
return jwt.sign(_.omit(user, 'password'), config.secret, { expiresInMinutes: 60*5 });
}
Run Code Online (Sandbox Code Playgroud)
来自客户的代码:
angular
.module('sample.home', [
'ui.router',
'angular-storage',
'angular-jwt'
])
.config(function ($stateProvider) {
$stateProvider
.state('home', {
url: '/',
controller: 'HomeCtrl',
templateUrl: 'modules/home/home.html',
data: { requiresLogin: true }
})
})
.controller('HomeCtrl', function homeController ($scope, $http, store, jwtHelper) {
$scope.jwt = store.get('jwt');
$scope.decodedJwt = $scope.jwt && jwtHelper.decodeToken($scope.jwt);
});
Run Code Online (Sandbox Code Playgroud)
这是完整示例的链接: http://github.com/auth0/ang ...
我很困惑.AngularJS要求在模块中创建服务,控制器和指令.但是,这些服务,控制器和指令可以注入到其中存在的模块的任何其他服务,控制器或指令中!正确?并且,除了ng-app之外,我还没有看到任何关心模块名称的IDE或工具.那么,为什么创建多个模块?在源代码中创建模块实际上是否具有除可读性之外的好处?
例...
(function(module) {
var dir = function(something) {
return {
};
};
module.directive("myDirective", dir);
}(angular.module("pointlessModuleName")));
Run Code Online (Sandbox Code Playgroud)
我已经尝试找到答案,但一直感到困惑......
Angularjs中的多个模块
在 JavaScript / NodeJS 中返回错误编号或错误状态代码的最有效方法是什么?例如,我想在以下代码段中返回 401 的状态代码(或错误代码):
var login = function (params, callback) {
var email = params.email || '',
password = params.password || '';
if (!isValidEmail(email)) {
return callback(new Error('Email address required', 401));
}
// Do something else
};
Run Code Online (Sandbox Code Playgroud)
上面的 login 方法将按如下方式调用:
authRouter.post('/login', function(req, res) {
svc.login(req.body, function (err, response) {
if (err) {
err.statusCode = err.statusCode || 401;
return res.status(err.statusCode).send({ message: err.message });
} else {
return res.send(response);
}
});
});
Run Code Online (Sandbox Code Playgroud)
这里的目标是err.statusCode在方法中设置(或类似的)并通过回调传回。基本上,我正在寻找这个的速记版本:
var err = new …Run Code Online (Sandbox Code Playgroud) 我想念什么?Mongoose的文档说mongoose.plugin()为所有模式注册了一个插件。这是行不通的。我可以在每个架构上注册我的插件。
我的插件:
module.exports = function (schema, options) {
schema.set('toObject',{
transform: function (doc, ret, options) {
return {
test: 'It worked!'
};
}
});
};
Run Code Online (Sandbox Code Playgroud)
我的架构:
var testPlugin = require('test-plugin.js');
var personSchema = mongoose.Schema({
_id : { type: String, default: $.uuid.init },
ssn : { type: String, required: true, trim: true },
first : { type: String, required: true, trim: true },
middle : { type: String, required: true, trim: true },
last : { type: String, required: true, …Run Code Online (Sandbox Code Playgroud) 我需要从 GPG 获取公钥 ID。SO 上的所有内容都讨论了导入、导出等。在下面的示例中,我需要获取要ABCD1234在 bash 脚本中使用的值?
$ gpg --list-keys
/Users/jblow/.gnupg/pubring.gpg
---------------------------------
pub 2048R/ABCD1234 2016-09-20
uid [ultimate] Joe Blow <joe.blow@nowhere.com>
sub 2048R/JDKKHU76 2016-09-20
Run Code Online (Sandbox Code Playgroud) 我怎样才能有一个string带有minlength. 文档(链接在这里)没有详细介绍这一点?我已经试了:
var schema = mongoose.Schema({
name: { type: String, required: true, maxlength: 255 },
nickname: { type: String, minlength: 4, maxlength: 255 }
});
Run Code Online (Sandbox Code Playgroud)
我尝试的每个变体都会返回某种类型的错误。
我的目标是评估minlength并且maxlength 仅当已提供该值时。
如何version从以下json文件中检索属性并在BASH脚本中使用它?
file package.json
{
"name": "myapp",
"version": "0.0.1"
}
Run Code Online (Sandbox Code Playgroud)
所需的脚本:bpush.sh
#!/bin/bash
gulp bump
git add -A
eval $pkg_ver = getjson('./package.json', 'version')
git commit -a -m "$pkg_ver"
git push origin master
Run Code Online (Sandbox Code Playgroud)
显然,该getjson()功能无效. 这就是我想弄清楚的.
编辑:最终结果
这是我使用的,感谢下面的人...
#!/bin/sh
pkg_ver=$(jq '.version' package.json)
pkg_ver=${pkg_ver//\"/}
git add -A
git commit -a -m $pkg_ver
git push origin master
Run Code Online (Sandbox Code Playgroud) execMakefile 中 是否需要关键字?
build-cache: clean-cache
@exec ./scripts/copy_packages.sh
./scripts/build_makefile.sh
docker build -t common/cache ./cache
Run Code Online (Sandbox Code Playgroud)
我只是注意到有些行使用 exec 而其他行则不使用。
如何从以下文件名中获取$YEAR、$MONTH和$DAY变量:
201601010557 - Development Database.bak
Screen Shot 2017-01-11 at 10.42.14 PM
SIRIUS Internet Radio - Howard 100 20101220 0600.mp3
Howard Stern Show - 20160413.mp3
Run Code Online (Sandbox Code Playgroud)
我正在尝试按名称中的日期组织文件。但是,我很难理解sed和grep命令。这些文件包含三种不同格式的日期。
我发现了一个例子,它可以很好地处理带有连字符日期的文件,但它使用#占位符sed(这会导致我的大脑受伤)。我更希望有一个$YEAR、$MONTH和$DAY变量,这样我就可以更好地理解它并根据我的喜好调整函数(即order-by-month或order-by-year)。
org-by-date(){
ls -A1 | grep -E '[0-9]{4}-[0-9]{2}-[0-9]{2}' | while read -r line; do
DNAME="$(echo $line | grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}' | sed 's#-#/#g')"
mkdir -p "./$DNAME"
mv "$line" "./$DNAME/"
done
} …Run Code Online (Sandbox Code Playgroud)