我的Vue应用程序中有以下服务工作者代码:
main.js
if (navigator.serviceWorker) {
navigator.serviceWorker.register('/service-worker.js').catch(function() {
console.log('Service worker registration failed.');
});
}
Run Code Online (Sandbox Code Playgroud)
服务worker.js
let currCacheName = 'premium-poker-tools-5';
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(currCacheName).then(function(cache) {
let promise = cache.addAll([
'/',
'app.js',
'c7d016677eb7e912bc40.worker.js',
'f328c7e2b379df12fa4c.worker.js',
'static/logo.png',
'static/favicon.png',
'static/loading.svg',
'static/cards/ace-of-clubs.png',
'static/cards/king-of-clubs.png',
'static/cards/queen-of-clubs.png',
'static/cards/jack-of-clubs.png',
'static/cards/ten-of-clubs.png',
'static/cards/nine-of-clubs.png',
'static/cards/eight-of-clubs.png',
'static/cards/seven-of-clubs.png',
'static/cards/six-of-clubs.png',
'static/cards/five-of-clubs.png',
'static/cards/four-of-clubs.png',
'static/cards/three-of-clubs.png',
'static/cards/two-of-clubs.png',
'static/cards/ace-of-spades.png',
'static/cards/king-of-spades.png',
'static/cards/queen-of-spades.png',
'static/cards/jack-of-spades.png',
'static/cards/ten-of-spades.png',
'static/cards/nine-of-spades.png',
'static/cards/eight-of-spades.png',
'static/cards/seven-of-spades.png',
'static/cards/six-of-spades.png',
'static/cards/five-of-spades.png',
'static/cards/four-of-spades.png',
'static/cards/three-of-spades.png',
'static/cards/two-of-spades.png',
'static/cards/ace-of-hearts.png',
'static/cards/king-of-hearts.png',
'static/cards/queen-of-hearts.png',
'static/cards/jack-of-hearts.png',
'static/cards/ten-of-hearts.png',
'static/cards/nine-of-hearts.png',
'static/cards/eight-of-hearts.png',
'static/cards/seven-of-hearts.png',
'static/cards/six-of-hearts.png',
'static/cards/five-of-hearts.png',
'static/cards/four-of-hearts.png',
'static/cards/three-of-hearts.png',
'static/cards/two-of-hearts.png',
'static/cards/ace-of-diamonds.png',
'static/cards/king-of-diamonds.png',
'static/cards/queen-of-diamonds.png',
'static/cards/jack-of-diamonds.png',
'static/cards/ten-of-diamonds.png',
'static/cards/nine-of-diamonds.png', …Run Code Online (Sandbox Code Playgroud) javascript web-worker service-worker cachestorage worker-loader
为了开始我的项目,我跑了vue init webpack my-project,但我排除了E2E测试.现在,我改变了主意,也希望包括端到端测试.如何将它们添加到我的项目中?
读者注意:Tarun Lalwani的回答对我很有帮助.但是,您可能需要考虑使用TestCafe,因为它可以在没有任何配置的情况下工作.
我尝试使用该命令创建一个虚拟项目,vue init webpack my--project以便我可以复制粘贴test/e2e目录,然后尝试从那里工作,但它没有工作.我也复制粘贴了npm脚本,尝试运行npm run e2e然后根据我收到的错误消息更新了我的代码.
我已经达到了一个TypeError: webpack.optimize.ModuleConcatenationPlugin is not a constructor错误的地步.const webpack = require('webpack'),我已经跑去npm update确保webpack节点模块是最新的,所以我不知道为什么我会收到这个错误.
无论如何,这种尝试运行npm run e2e然后根据错误消息更新我的代码的方法似乎不太可能成功.
的package.json
{
"name": "premium-poker-tools",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "Adam Zerner <azerner3@gmail.com>",
"private": true,
"scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"test": "BABEL_ENV=test karma start …Run Code Online (Sandbox Code Playgroud) 我总是看到bodyParser用于访问发布的表单内容.通过使其可访问req.body.但是,如果您不想使用,您将如何访问该数据bodyParser?
相关/类似问题 - 如何bodyParser为您提供数据req.body?
编辑:我问的是这些东西在低级别上是如何工作的.这种可能的重复似乎是通过推荐某些中间件并描述如何使用它们来解决它.
我问的原因是因为我想在我拥有的这个巨大的多维数组中存储一堆DOM节点.
成本:占用内存空间.问题是空间有多大,这取决于我是获得引用还是实际的DOM节点.
好处:1)它将使我的代码更简单.2)我可以避免遍历,而只是从我的数组中引用DOM节点.
思考?
我的理解是,当您在Angular单元测试中加载模块时,run会调用该块.
我认为,如果你正在测试一个组件,你不会同时测试该run块,因为单元测试应该只测试一个单元.真的吗?
如果是这样,有没有办法阻止run块运行?我的研究让我认为答案是"不",并且run块在模块加载时总是运行,但也许有一种方法可以覆盖它.如果没有,我将如何测试该run块?
运行块:
function run(Auth, $cookies, $rootScope) {
$rootScope.user = {};
Auth.getCurrentUser();
}
Run Code Online (Sandbox Code Playgroud)
Auth.getCurrentUser:
getCurrentUser: function() {
// user is logged in
if (Object.keys($rootScope.user).length > 0) {
return $q.when($rootScope.user);
}
// user is logged in, but page has been refreshed and $rootScope.user is lost
if ($cookies.get('userId')) {
return $http.get('/current-user')
.then(function(response) {
angular.copy(response.data, $rootScope.user);
return $rootScope.user;
})
;
}
// user isn't logged in
else { …Run Code Online (Sandbox Code Playgroud) 图片:
.left {
border: 1px solid red;
}
textarea {
border: 1px solid blue;
}
.parent {
border: 1px solid green;
}Run Code Online (Sandbox Code Playgroud)
<div class='parent'>
<span class='left'>
<span>one</span>
<span>two</span>
</span>
<textarea></textarea>
</div>Run Code Online (Sandbox Code Playgroud)
更新:我与FixedHeader的作者交谈,似乎它对我不起作用.我认为问题是我的表位于选项卡内部,这导致了一些问题(请参阅我的其他更新中的屏幕截图),他说当前版本的FixedHeader没有解决这些问题.我已经尝试了一些固定表头的其他插件和方法,他们都给了我类似的问题.我怀疑是因为我的桌子在一个标签内.如果有人有任何简单的解决方案,请告诉我.否则,不要担心.我有很多其他的东西要为这个网站工作,固定的表格标题似乎占用了太多时间.
我正在尝试将FixedHeader用于我的网站.
我下载了FixedHeader.js并将其放入vendor/assets/javascripts.我//= require FixedHeader在application.js.
在colleges.html.erb我给自己定一个类的table-fixed-header每一个我的两个表,并有<%= javascript_include_tag :application %>.在colleges.js,我有var oTable = $('.table-fixed-header').dataTable();
new FixedHeader( oTable );.
在开发环境中,当我去检查元素>资源(在chrome中),FixedHeader.js加载时,但是有2个问题colleges.js:它说......
var oTable = $('.table-fixed-header').dataTable();
Uncaught TypeError: Object [object Object] has no method 'dataTable' (repeated 2 times)
new FixedHeader( oTable );
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让它发挥作用?(现在它根本不起作用.)
编辑:我只是搞砸了一点,没有成功.我试过$.browser而不是jQuery.browser,但这给了我同样的'msie'错误.然后我尝试完全删除该代码,并且没有javascript错误,但是固定的标题并没有真正起作用(标题在我的网页顶部开始时不应该,它的大小不正确等等.).
更新:使用更新版本(https://github.com/DataTables/FixedHeader/blob/master/js/FixedHeader.js)获取标题,以便在单击表格链接之前显示在页面顶部(它应该是还没出现,它应该不是最顶层的.此外,它的大小不正确,并且没有排序功能.请看这些链接:
- http://awesomescreenshot.com/00d1pe963a
- http://awesomescreenshot.com/09e1pe9581
- http://awesomescreenshot.com/0d21pe9a2b
我正在阅读Backbone Fundamentals,目前正在介绍如何使用RequireJS构建应用程序的部分.
根据我的理解,匀场背后的想法是,通常当您需要模块时,RequireJS也会计算出如何加载它们的依赖关系.但是当你试图加载一个非AMD模块时,这不起作用(我不知道为什么,但这是一个单独的问题).为了解决这个问题,你可以设置一个垫片来说"在Y之前加载X".
require.config({
shim: {
'Y': ['X']
}
});
Run Code Online (Sandbox Code Playgroud)
我看到你可以exports说,"把这个非AMD的东西放到一个全局变量而不是一个模块".
require.config({
shim: {
'Y': {
exports: 'globalY'
}
}
});
Run Code Online (Sandbox Code Playgroud)
嗯,那解决了什么问题?非AMD库的问题不仅仅是RequireJS无法找出依赖关系吗?
当我尝试保存我的文档时,我收到一个VersionError: No matching document found错误,类似于这个问题.
阅读此博客文章后,似乎问题在于我的文档版本控制.我搞乱了一个阵列,所以我需要更新版本.
但是,打电话document.save()对我不起作用.当我在调用之前和之后注销文档时save(),document._v是同样的事情.
我也尝试过document._v = document._v++这也行不通.
码
exports.update = function(req, res) {
if (req.body._id) { delete req.body._id; }
User.findById(req.params.id, function(err, user) {
if (err) return handleError(res, err);
if (!user) return res.send(404);
var updated = _.extend(user, req.body); // doesn't increment the version number. causes problems with saving. see http://aaronheckmann.blogspot.com/2012/06/mongoose-v3-part-1-versioning.html
console.log('pre increment: ', updated);
updated.increment();
// updated._v = updated._v++;
console.log('post increment: ', updated);
updated.save(function(err) …Run Code Online (Sandbox Code Playgroud) 从文档:
Passport 在 req(也称为 logOut())上公开了一个 logout() 函数,可以从任何需要终止登录会话的路由处理程序调用该函数。调用 logout() 将删除 req.user 属性并清除登录会话(如果有)。
Run Code Online (Sandbox Code Playgroud)app.get('/logout', function(req, res){ req.logout(); res.redirect('/'); });
通过阅读本文并测试自己,似乎并没有logout从客户端中删除 cookie。据我了解,当客户端发出请求时,它会发送它的 cookie,Passport 将其反序列化并转换为req.user.
假设logout不删除cookie,并且Passport 使用cookie 来确定用户是否登录,该logout函数实际上是如何将用户注销的?
javascript authentication node.js passport-local passport.js
javascript ×8
node.js ×3
jquery ×2
angularjs ×1
backbone.js ×1
cachestorage ×1
css ×1
dom ×1
express ×1
html ×1
karma-runner ×1
mongodb ×1
mongoose ×1
passport.js ×1
requirejs ×1
testcafe ×1
unit-testing ×1
vue-cli ×1
vue.js ×1
web-worker ×1
webpack ×1