我希望能够使用Express和EJS向客户端发送消息.我看了一遍,但仍然找不到示例或教程.有人能告诉我闪烁消息的最简单方法吗?
谢谢!
在成功的ajax请求之后,我想向我的视图发送一条flash消息(例如,在编辑时,我想将用户重定向到主页,其中$ flash ="您的商店已经更新").在控制器中,它很容易,但我不知道在JavaScript中做什么.你们中的任何人都知道如何解决这个问题吗?我正在使用Laravel
调节器
public function postUpdate (Request $request)
{
$this->validate($request, [
'website_name' => 'required',
'website_url' => 'required',
'category' => 'required',
'type' => 'required',
'sells' => 'required',
'location' => 'required',
'description' => 'required',
'payment' => 'required'
]);
Shop::where('username', '=', Auth::user()->username)->update(['website_name' => Input::get('website_name'),
'website_url' => Input::get('website_url'), 'type' => Input::get('type'), 'category' => Input::get('category'), 'sells' => Input::get('sells'), 'location' => Input::get('location'),
'payment' => Input::get('payment'), 'description' => Input::get('description')]);
return Response::json(['message' => 'Success', 'message_class' => 'alert alert-success fade in']);
}
Run Code Online (Sandbox Code Playgroud)
AJAX
$(".update-form").submit(function(s){
s.preventDefault();
var website_name = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用会话实现Flash消息,但我无法这样做.
在我的控制器中我有:
public function store(Request $request) {
session()->flash('donald', 'duck');
session()->put('mickey', 'mouse');
return redirect()->action('CustomerController@index')->with('bugs', 'bunny');
}
Run Code Online (Sandbox Code Playgroud)
但是当我在视图中检查会话变量时,我只能看到来自的值session()->put('mickey', 'mouse')
.
会议:
{"_token":"F6DoffOFb17B36eEJQruxvPe0ra1CbyJiaooDn3F","_previous":{"url":"http:\/\/localhost\/customers\/create"},"flash":{"old":[],"new":[]},"mickey":"mouse"}
Run Code Online (Sandbox Code Playgroud)
很多人通过在Web中间件中没有相关路由来遇到这个问题.我也确保这样做但它仍然不起作用.
在routes.php中:
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('welcome');
});
Route::get('/customers', 'CustomerController@index');
Route::get('/customers/create', 'CustomerController@create');
Route::post('/customers', 'CustomerController@store');
});
Run Code Online (Sandbox Code Playgroud)
在Kernel.php中:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道我在这里做错了什么吗?谢谢!
我有一个小问题,我似乎无法弄清楚。
常规闪光灯的工作原理与预期一样。
flash[:test] = 'Blarrgh'
redirect_to etcs_url
Run Code Online (Sandbox Code Playgroud)
将显示“Blarrgh”,因为我的 application.html.erb 中有此代码
<% if flash[:test] %>
<%= flash[:test] %>
<% elsif flash.now[:test] %>
<%= flash.now[:test] %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我很确定显示 flash.now[:test] 消息的方式只是 flash[:test],但我在底部添加了 elsif 以防万一,因为事情不起作用。
出于某种原因,当我这样做时
flash.now[:test] = 'Blarrgh'
render :edit
Run Code Online (Sandbox Code Playgroud)
什么也没有显示出来。但是,当我将“失败”语句放入视图中然后检查这些值时,flash[:test]/flash.now[:test] 将具有正确的值。例如,['Etc不能为空']
我尝试检查常见错误:没有 CSRF 令牌、隐藏重定向、flash.now b4 渲染、使用 form_with 而不使用 local:true,但是查看我的日志,没有这样的问题。我包含了 CSRF 令牌,我的日志路径是
In logs:
patch /etc/1
(Commit fails, rolls back)
renders application.html.erb which yields etcs/edit.html.erb which renders etcs/_form.html.erb, then renders rest of etcs/edit.html.erb
Run Code Online (Sandbox Code Playgroud)
我将 flash.now b4 放在渲染中。我也没有使用像 form_with 这样的 Rails 辅助函数。
我正在从Symfony 2.0迁移到Symfony 2.1.
我的控制器上有以下简单代码:
public function createEntidadeAction() {
$this->get('session')->getFlashBag()->set('error', 'message');
return $this->redirect($this->generateUrl('EntidadeBundle_index'));
}
Run Code Online (Sandbox Code Playgroud)
如果我生成错误(例如通过传递错误的路由),我会检查探查器是否存在flash消息.
但是,如果我让重定向成功,则flash消息将消失,并且不显示任何内容.我在相应的Twig模板上有以下内容:
{% for flashMessage in app.session.flashbag.get('error') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这一点.我错过了什么?Flash消息应该在第一次重定向后持续,不是吗?
在发布到我的 Flask 应用程序 url 的不同输入值上,它会闪烁不同的消息,例如“未输入数据”、“无效输入”、“未找到记录”、“找到 3 条记录”。
有人可以指导我如何编写鼻子测试以检查是否显示了正确的闪光信息?我猜闪存消息首先进入会话......我们如何在鼻子测试中检查会话变量?
谢谢
我一直在从Symfony Book中学习本教程来管理我的用户.
现在,我想在登录成功后设置一条flash消息,或者如果有人试图访问禁区.
我的理解是,控制器内部不管理身份验证和授权.因此,我不知道在哪里放置我的代码来显示简单的"抱歉,你没有连接"的消息.
我使用护照和闪存来管理身份验证。我想根据文档将闪现消息发送回用户界面。在我的用户界面场景中,我使用的是模态,所以执行
res.render('login.ejs', { message: req.flash('loginMessage') });
Run Code Online (Sandbox Code Playgroud)
不起作用,因为您只能在页面刷新时呈现。因此,当由于某种原因无法登录时,如何将闪存数据或任何其他类型的数据发送到我的页面。无论特别是 Flash 数据如何,我都无法弄清楚如何使用 Express 将数据渲染到模态。
路线.js
低于 res.render 的情况永远不会在身份验证失败时发生。
//Home Page ===================================
app.get('/', function(req, res) {
res.render('login.ejs', { message: req.flash('loginMessage') });
});
//Login Modal =================================
app.post('/login', passport.authenticate('local-login', {
successRedirect : '/profile',
failureFlash : true
}));
Run Code Online (Sandbox Code Playgroud)
index.ejs (我的模式在哪里)
res.render('login.ejs', { message: req.flash('loginMessage') });
Run Code Online (Sandbox Code Playgroud)
我的理解是我需要使用 javascript/ajax 来防止帖子被重定向,但我无法弄清楚如何获取 Flash 数据:
索引.ejs (javascript)
//Home Page ===================================
app.get('/', function(req, res) {
res.render('login.ejs', { message: req.flash('loginMessage') });
});
//Login Modal =================================
app.post('/login', passport.authenticate('local-login', {
successRedirect : '/profile',
failureFlash …
Run Code Online (Sandbox Code Playgroud)我想使用关闭按钮在 Django 中显示 Flash 消息。Django 中现有的消息框架允许显示消息但不允许关闭它。
例如,web2py 提供了这样的 flash 消息。我正在 Django 中寻找类似的功能。
如果可以用几行代码完成,那就太好了。我不想在 Django 之上添加任何其他库或框架。
提前致谢。
我想创建一个必须从 firestore 恢复数据并将其公开为 json 的 API,但我面临以下错误:
Object of type GeoPoint is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
怎么了?这是我的代码:
#!/usr/bin/env python
import firebase_admin
import json
from pprint import pprint as pp
from flask import Flask, flash, request, url_for, jsonify, Response
from firebase_admin import credentials
from firebase_admin import firestore
app = Flask(__name__)
cred = credentials.Certificate('xxxx.json')
firebase_admin.initialize_app(cred)
db = firestore.client()
@app.route('/')
def index():
markers_ref = db.collection(u'Test')
docs = markers_ref.get()
data = []
for doc in docs:
data.append(doc.to_dict())
json_data = json.dumps(data)
resp = Response(json_data, status=200, mimetype='application/json')
return …
Run Code Online (Sandbox Code Playgroud) python flask flash-message firebase firebase-realtime-database
flash-message ×10
python ×3
ajax ×2
flask ×2
javascript ×2
jquery ×2
laravel ×2
node.js ×2
php ×2
symfony ×2
django ×1
django-views ×1
ejs ×1
express ×1
firebase ×1
hotwire ×1
laravel-5.2 ×1
nose ×1
nosetests ×1
render ×1
ruby ×1
session ×1
symfony-2.1 ×1
web2py ×1