加载中…
博文
(2017-10-19 14:53)
标签:

情感

分类: Zenpencils中文翻译

现在就做,否则就太迟了。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

angular

分类: 程序员

代码片断如下, #53463d是背景色, 鼠标移动其上就将颜色改为白色,移开则隐藏。   

       

[ngStyle]='{'color': '#53463d'}'          (mouseenter)='admin.style.color = 'white''          (mouseleave)='admin.style.color = '#53463d''

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

javascript

grunt

npm

分类: 程序员

一直在使用Gruntfile来进行js项目自动化,但时间一长问题就来了。

一方面要维护npm的package.json,一方面要维护Gruntfile。

​是不是冗余了?复杂化了?

放弃Gruntfile,所有操作转为npm处理。

使用Gruntfile最重要的原因就是代码变动的监控,代码一旦变化就执行对应处理,比如less编译。

这个在npm里面使用nodemon就解决了​。

'scripts': {​

...​

    'less': 'lessc less/style.less css/style.css',

    'watch-less': 'nodemon --watch less -e less -x \'npm run less\'',

...

但是,我要同时监控好几件事呢?

使用parallelshell。

...


'watch': 'parallelshell 'npm run watch-less' 'npm run watch-services' 'npm run watch-lint' 'npm run watch-css' 'npm run watch-js'',​

...


最后使用npm run watch就启动所有事项了。​

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

javascript

lint

分类: 程序员

eslint检查命令很多很全,用起来也很简单,使用步骤:

1. 安装eslint

2. 安装eslint-config-google​

你想自己写规则?那跳过这一步。否则还是和Google保持一致吧。

3. 在项目主目录下创建.eslintrc.json

{

  'extends': 'google',

  'parserOptions': {

    'ecmaVersion': 8

  }

}

4. 把lint命令加入package.json

'scripts': {​

...​

'lint': 'eslint --ext .js js/ tests/ --fix',

解释:在js这个文件夹目录下,搜索.js后缀的文件进行检查,可以修复的就直接进行修复。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

protractor

分类: 程序员

应该想到这个东西就是不可见的!

搞了两天,百思不得其解,明明手工操作可见的按钮,自动测试时就是报看不见。

在Mac下面执行的时候, Chrome没跳到前台来,也就没去点开看具体的样子。

在Ubuntu下面执行的时候,就看见浏览器自动打开各种操作,看了很多遍也没看出异常。

最后终于有一次,看见它启动浏览器执行的时候,看着只有一半宽度的浏览器在动,

忽然明白了,有些元素在只有一半宽度的情况下就是看不见的!

原来原因就在于Protractor默认没有使用全屏浏览器进行操作!

把这句话加到测试的最前面:

browser.driver.manage().window().maximize();​​

在Mac下发现这条居然无效,还先要设置具体的长宽才行:

browser.driver.manage().window().setSize(1400, 900);

browser.driver.manage().window().maximize();

一切正常了。​

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

前端

protractor

分类: 程序员

看上去最基本的要求却让我寻找了一段时间的答案。

我的目的是测试如下一段代码:

​测试的想法是把链接的内容都取到一个数组中,再来检查这个数组。

于是写成了这个样子:

element.all(by.css('.btn-group ​.dropdown-menu li a')).getText().then( (menus) => {

console.log(menus);

...

期望的结果是: [ '发起流程', '用户管理', '修改密码', '注销' ]

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

zenpencils

分类: Zenpencils中文翻译


原文:http://zenpencils.com/comic/fear/

中文翻译主页: http://zenpencils.chenxiao.info/

微信公众号:哲思漫话


阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

node

log4js

express

分类: 程序员

我的要求很明确:配置简单, 自动进行日期文件分割。

比较了一下, log4js比较符合自己的要求。

server端配置如下:

const log4js = require('log4js');

log4js.configure({

  //appenders是记录的类型,这里我要同时使用两种:文件和控制台显示

  //文件是一种永久记录,控制台是为了调试方便(不用每次都tail -f)​

  appenders: {

    logfile: { type: 'dateFile', filename: 'logs/yapin.log' },

    display: { type: 'console' }

  },

  //categories就是对如何使用上述定义的类型的定义

  //本例中我选择同时使用​

  categories: { default: { appenders: ['logfile', 'display'], level: 'debug' } }

});

//这里的yapin代表应用的名称, 'yapin'这串字符会出现在logg

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

express

mocha

supertest

照理说单元测试和集成测试应该严格区分的。

单元测试就是不调用任何外部资源的功能性测试。

但是在NodeJs+Express+Mongodb​的环境下,实在忍不住要以单元测试的方式

来测试express的各种应用,实在是太方便了。

1. Express的主程序server.js

原程序的最后是:http.createServer(app).listen(4000);

因为要进行测试需要改为:

var server = http.createServer(app).listen(4000);

module.exports = server;

2. ​测试程序


​// before和after里面要有测试环境的打开和关闭

// 在这个例子中before涉及在数据库中插入一条测试记录和启动服务器​

// ​after涉及删除测试记录和关闭服务器

var server;

describe('login', () => {

//​ 注意使用了async/await, 因为必须将这些异步操作顺序执行

  before( async () => {

    await userData.addNew('testUser', 'testBumen');

    server = await require('se

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

问题:我有一个module,功能是插入一条记录到数据库中,如何写这个module让它返回promise, 从而可以在主程序中使用async/await来进行同步操作?

数据库(mongodb)本身的操作就是返回promise的,但是直接return却是行不通的。​

最后发现需要用Promise在外面包装一次才可以。​

正确写法如下:

var exports = module.exports = {};

exports.insertNew = (_username, _password, db) => {

  return new Promise( (resolve, reject) => {

    db.collection('user').insertOne(

        {

           'username': _username,

          'password': _password

&nb

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
个人资料
孤独古怪的孩子
孤独古怪的孩子
  • 博客等级:
  • 博客积分:0
  • 博客访问:65,264
  • 关注人气:12
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
搜博主文章
好友
加载中…
访客
加载中…
评论
加载中…
留言
加载中…
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有