我想做这样的事情
router.get('/getforecast/:stationShortCode', function(req,res){
var stationShortCode = req.params.stationShortCode;
var fs = require('fs');
fs.readFile("data/wx.hourly.txt", "utf8", function(err, data){
if(err) throw err;
//do operation on data that generates say resultArray;
return resultArray;
});
res.send(resultArray);
});
Run Code Online (Sandbox Code Playgroud)
显然,res.send同步调用,而文件读取异步.这有一个聪明的解决方案吗?我被迫实际传入res吗?
我有这个vue js组件:
<template>
<div>
hello world
</div>
</template>
<script>
export default {
name: 'mycomp',
data: function () {
console.error("window.google_recaptcha_public_key", window.google_recaptcha_public_key);
return {
}
},
mounted() {
let app = this;
console.error("window.google_recaptcha_public_key2", window.google_recaptcha_public_key);
},
}
</script>
<style scoped lang="scss">
</style>
Run Code Online (Sandbox Code Playgroud)
返回:
window.google_recaptcha_public_key undefined
window.google_recaptcha_public_key2 undefined
Run Code Online (Sandbox Code Playgroud)
在哪里可以使所有全局配置轻松自如呢?
注意此配置位于我的laravel后端中。所以我不会将所有值从后端复制粘贴到前端
我来自 java 背景,那里有同步块:
“同步”关键字可防止多个线程同时访问代码块或对象。
java中的示例代码:
public void addName(String name) {
synchronized(this) {
lastName = name;
nameCount++;
}
nameList.add(name);
}
Run Code Online (Sandbox Code Playgroud)
现在这个例子突出了 php 和 java 的根本区别(如果我错了,请纠正我)。但是 php 中不存在单例或共享类。因此,当用作单例时,java 代码的给定示例很有意义。因此在请求之间有一个共享对象。遗憾的是,现在这对于 php 似乎不存在,这显然是一个主要缺点。但是要以 php 方式完成,最终会将名称计数写入文件或数据库,从而以这种方式在请求之间共享数据(显然要慢得多)。但问题是一样的:如果 2 个请求同时增加名称计数,那么它就会太少了。
现在第一个问题:php 7 是否存在类似的东西?即同步块
现在我不确定在 php 7 中线程这个词是否真的适用于我所担心的。php 中的一个线程是否也被认为是对 php 文件的单独调用,也就是说foo.php,如果我同时访问foo.php两次,如果同步块存在,是否会一个接一个地执行,或者我有通过扩展类创建一个合适的php线程,Thread然后才算作线程?
基本上我想要做的是使用特殊的令牌自动登录
但是:仅适用于页面的子集.比如,使用令牌登录进行评论是可以的.令牌登录无法更改信用卡信息和购买物品.
所以我想token_login在users表上存储一个布尔值.
在每次登录时,我token_login使用事件处理程序将其设置为false
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
'Illuminate\Auth\Events\Login' => [PostLoginListener::class],
];
Run Code Online (Sandbox Code Playgroud)
执行真正的令牌登录时,我将其设置为true.
所以我希望事件被调用 - > token_login = false
然后代码继续运行,在实际自动登录的情况下设置token_login = true.
现在,这要求事件实际上始终同步并且始终在其他代码之前触发.是这样的吗?
我在5.3.31上
所以它不能与
https://github.com/laravel/framework/issues/15179
经过300个工作后,我得到:
[2017-04-11 13:51:53] local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function beginTransaction() on null in /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Database/Connection.php:612
Stack trace:
#0 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php(175): Illuminate\Database\Connection->beginTransaction()
#1 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(175): Illuminate\Queue\DatabaseQueue->pop('default')
#2 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(145): Illuminate\Queue\Worker->getNextJob(Object(Illuminate\Queue\DatabaseQueue), 'default')
#3 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(75): Illuminate\Queue\Worker->runNextJob('database', 'default', Object(Illuminate\Queue\WorkerOptions))
#4 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(100): Illuminate\Queue\Worker->daemon('database', 'default', Object(Illuminate\Queue\WorkerOptions))
#5 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(83): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'default')
#6 [internal function]: Illuminate\Queue\Console\WorkCommand->fire()
#7 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(508): call_user_func_array(Array, Array)
#8 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array)
#9 /var/www/html/www.myapp.com/vendor/symfony/console/Command/Command.php(256): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /var/www/html/www.myapp.com/vendor/symfony/console/Application.php(820): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /var/www/html/www.myapp.com/vendor/symfony/console/Application.php(187): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/html/www.myapp.com/vendor/symfony/console/Application.php(118): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/html/www.myapp.com/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) …Run Code Online (Sandbox Code Playgroud) 我在这里找不到任何东西:https://docs.python.org/3/library/operator.html
PHP的两个例子很方便派上用场:
echo $count ?: 10; //prints $count if $count is not empty string, null, false or 0, otherwise prints 10.
echo $a ?? $b ?? 7; //prints $a if $a is defined and not null, otherwise will print $b, otherwise 7
Run Code Online (Sandbox Code Playgroud)
Python中是否有等效的运算符?注意:
a if condition else b
Run Code Online (Sandbox Code Playgroud)
并不真正替换速记三元运算符,因为条件和返回值是在速记版本的PHP中的一个元素中指定的.
我在这里阅读:
https://router.vuejs.org/en/essentials/dynamic-matching.html
但这似乎并不能让我说:
/mycoolapp?someid=123
Run Code Online (Sandbox Code Playgroud)
是的,我可以
/mycoolapp/123
Run Code Online (Sandbox Code Playgroud)
但这不是问题
问题是:我可以使用get查询参数动态匹配路由吗?
当阅读这里时,你会发现外墙并不是真正的外墙
无论如何,Facades 上的所有方法都是静态的(请自行查看Illuminate\Support\Facades)
有些别名实际上就是这样,例如普通类
'Arr' => Illuminate\Support\Arr::class,
它作为门面有什么意义?
我们正在进行一些性能测试,以确定应用程序的哪些步骤需要多少时间。当然,使用正则表达式轻松解析/过滤日志是一个魅力。针对问题:我们的jsf应用程序被分成几个项目,这些项目被其他(非jsf)应用程序使用。我的第一个方法是:
if(logger.isDebugEnabled())
logger.debug("Service call took: " + (System.currentTimeMillis() - time)+ " JSESSIONID="+CookieUtil.getJsessionId(FacesContext.getCurrentInstance())) ;
Run Code Online (Sandbox Code Playgroud)
(CookieUtil 将从 HttpServletRequest 中读取 sessionId)
但是……显然其他项目不喜欢对 JSF 库的依赖,也不喜欢对我整洁的 CookieUtil 的依赖。log4j 提供了什么吗?还有其他工具/概念吗?
在我的代码中,第一个示例工作正常.第二个元素将第二个元素推送到新行.
为什么?以及如何避免它?
.one {
background-color: cornflowerblue;
width: 50%;
}
.one,
.two {
height: 100%;
font-size: 30px;
}
.two {
width: 50%;
background-color: salmon;
}
.ib {
display: inline-block;
}
.container {
font-size: 0;
height: 200px;
}
.fb {
display: flex;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="one ib">one</div>
<div class="two ib">two</div>
</div>
<div class="container">
<div class="one fb">one</div>
<div class="two ib">two</div>
</div>Run Code Online (Sandbox Code Playgroud)