Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all 14821 articles
Browse latest View live

分享一个Electron项目——仿百度云

$
0
0

本项目基于Electron2,Webpack3,Babel7,React16,MobX3实现。通过此项目你可以有以下收获:

  1. 初步了解electron的工作模式,熟悉部分api.
  2. 熟悉webpack相关插件及配置
  3. 熟悉babel7全新的模块化。体验最新的语言特性
  4. 完美开启react的学习之旅
  5. 深入体会mobx的工作原理
  6. 熟悉nodejs
  7. 熟悉github的协作模式

最后,这是一个新手学习nodejs,react,跨平台开发者的超级棒的入门级项目 仓库在此:electron-icloud。欢迎star并fork加入到项目开发,体验编程的乐趣


外资创业公司期待合拍的伙伴加盟

$
0
0

公司领域: 高大上的广告市场

公司创始人: A:美国海龟,国防科技大学毕业,曾任职 Google,长达十多年的工作经验,资源众多 B:香港投行巨子,就职于某基金管理公司任高管,有丰富的投资财经管理经验

公司阶段: 现有阶段公司处于初始团队组建阶段,欢迎有缘的小伙伴一起加入

你的收获: 高于市场的薪水 合适的股权 更高规格的技术锻炼 快速晋升的通道 与大牛一起共事

公司需求: 暂需求一个三年以上的前端工程师(更高年限当然更好),技术方面的直接实际操作面试 待遇高于市场水平,工资可谈,合适可进行股权激励 (ps:如果有其他岗位的牛人也可联系,Java,服务器,大数据)

公司环境: 公司处于广州市天河区五山金颖大厦,配备冰箱,空调,零食,微波炉,游戏机等,每年1— 4 次团队旅行,开源化气氛,类 Google 式工作方式,周末双休

联系方式: 有意向的大牛,请发简历到:victor_destiny@163.com 接收到简历之后,会尽快与公司 Leader 反馈,之后直接走内推通道

nodejs node-schedule 怎么设置90秒

$
0
0

nodejs schedule 怎么设置90秒

用egg.js拉取到数据库的router数据,前端页面怎么动态渲染?

$
0
0

从数据库拉到的数据包括[{name:“页面1”,path: “/page1”},{name: “页面2”,path: “/path2”}],这里面的数据是动态的,可能还有页面3,4,5,那我怎么配置router呢?希望得到的效果是在首页有一个导航栏,点击"页面1",路由跳转到"/page1"显示页面1。 这里面的router数据是通过管理系统动态增删改查的

小米区块链“加密兔”

$
0
0

地址: https://jiamitu.mi.com?invitorId=1416470173

国内玩家们的热情在继百度“莱茨狗”、网易“招财猫”等区块链宠物产品纷纷转向低潮和夭折后,又再次被点燃。

3月14日,小米上线了一款基于区块链技术的数字宠物游戏“加密兔”,“萝卜”是这款游戏内的积分形式。内测版“加密兔”正式上线几分钟内,官网崩溃,等候许久的玩家纷纷在埋怨“挤不进去,崩了”。

小米MIUI商业产品部总经理顾大伟近日在接受36氪采访时表示:“加密兔”是小米在区块链方向上完成从技术到产品的第一次尝试。2016年底小米开始调研区块链技术,在2017年3月启动立项,最终,在经过不断的方案调整后,小米选择以“加密兔”游戏为入口开始区块链落地产品试验。

有玩家表示,虽然小米“加密兔”这类的区块链宠物产品运用的区块链技术很简单,但由于区块链的不可复制性使其具有一定的收藏价值;此外,众多投资者盲目追踪区块链产品,认为区块链就等于钱,从而造成疯抢的局面。“现在疯抢都是为了让编号靠前”,有玩家向36氪透露,编号越靠前获利可能性越大。

已经入场守候的玩家表示,“抢兔子的人太多,很难领到”。3月15号11点开通通道后,几秒钟之内就被一抢而空,没领到的人表示“瞬间就没了,就跟小米手机刚开始卖一样”。

顾大伟对36氪表示,由于处于测试阶段,发放的“加密兔”数量极少,所以导致玩家们很难领到“兔子”。至于已发放的和未来新增发放的数量,顾大伟没有透露。

目前小米账号是登陆“加密兔”的唯一账号,这也就意味着谁的账号越多(即拥有的手机号和邮箱更多),谁就有可能得到更多“兔子”。

玩法未定,谁将获利

小米平台目前还未收费,但顾大伟并未否认未来会采取收费的方式,只是尚未确定盈利模式。

“加密兔”官网显示,用户可通过限时领养等方式免费获得“兔子”或者胡萝卜。一位玩家告诉36氪,通过限时领养得到的“兔子”,入账时会有延时。

虽然游戏盈利模式尚未明确,但已出现玩家炒作迹象。

3月15日,有玩家在一个区块链交流 QQ群里喊话:“200元收小米传说加密兔,另1元200个萝卜,有卖的朋友私聊”,希望能够私下进行交易。一个玩家表示,虽然现在还看不出来加密宠物的前景,但是相对于百度的“莱茨狗”,更看好小米的产品,“因为小米的产品是物联网这一块的,未来小米可能更占优势。”

另有分析认为,如果“加密兔”借着区块链的热点效应大获成功,将会为小米带来巨大流量,从而为其推销小米系其它产品建立一个有利的新入口。

谨慎入场

百度金融推出的同类型产品“莱茨狗”目前仍保留了免费领养,拉好友赚积分的方式,并且可通过微积分交易,购买“莱茨狗”。

“加密兔”上线当天,百度金融针对有第三方假借“莱茨狗”名义发行、售卖所谓“莱茨币”发表声明称:“莱茨狗”不具备任何货币交易功能,同时,并未与百度以外任何第三方开展任何合作。

正在筹备IPO的小米,对于推出“加密兔”可能为公司带来的风险,也表现出了足够的谨慎。

小米在《加密兔用户服务协议》中特别标注了“不得利用加密兔相关服务进行融资或从事加密兔、积分与法定货币、‘虚拟货币’相互之间的兑换业务”等法律与政策明令禁止的活动,否则平台将会单方面采取清空账户等惩罚手段。

对玩家私下炒作的行为,小米公司回应称“并不知情,刚上线就受到追捧超出我们的意料”,并表示目前虽未建立有效的监测手段,但“小米历来非常重视产品和服务的合规,将来小米会在合规要求下密切关注行业动态和适时调整产品。”

这段code是不是闭包?

$
0
0

下面这段code 来自阮一峰大大的ECMAScript 6 入门,讲的是let的用法 第一种: var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a6; // 10 第二种: var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a6; // 6 阮大大给出的解释是: 变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。这个是可以理解。

我的疑问是:let声明的10个i为什么没有被释放掉? 我的理解: 因为function 函数是在for块内,所以function 可以访问for中的局部变量 i。而function又被赋值给了全局变量a[],这就会导致那个10个不同的 i 不会被回收掉。 那么这算不算是一种闭包?

测试下发布

分享一个vue 仿codepen项目

$
0
0

项目介绍

项目预览:vue-codepn项目地址:vue-codepen基于vue仿写的一个codepen在线代码编辑器,因为codepen 功能强大,目前只做了前端部分,大家可以尝试实现后端部分。里面的编辑器使用了 vscode 的web版 monaco-editor,相信后期扩展会更好。vue项目经验不多,写得不好的,希望大家吐槽哈^_^。

技术栈

  • vue
  • vue-resource
  • webpack
  • monaco-editor
  • es6-babel

截图

01.png02.png03.png04.png05.png06.png


[北京/可远程]互联网体育公司 招聘node.js 和web前端实习生或者兼职,待遇佳

$
0
0

我们是斗米体育,专注于体育社区的互联网创业社区。 技术要求:

  1. 熟练的javascript和css功底
  2. 熟悉node js
  3. 有相关的实习或者工作经验
  4. 如果有android,ios,python,mongodb的经验更好

工作要求:

  1. 我们公司在北京,但是也可以远程办公
  2. 一周20小时以上的工作时间

有意者请发简历到 hongjieuf#gmail

winston 在linux 下 不输出日志

$
0
0

如题,创建了日志文件,但是没有输出访问日志。已开通读写全写。求教有人遇到过嘛

Node Event loop为什么要分成六个阶段,这样做和浏览器的实现原理相比有什么样的好处?

$
0
0

我们都知道,Node Event loop分为六个阶段,每个阶段都有自己的作用。如图: loop2.png

我的疑问是,为什么要分成六个阶段,这样做有什么样的好处?有没有哪个阶段是可以被干掉或者合并的?

我最近做了一个总结,然后被人问到了这个问题。确实不知道,网上也查不到相应的资料。只能来求助大神了

[直播预告] 今天晚上免费直播讲解模拟登录百度

$
0
0

楼主是大数据工程师

之前给大家免费分享过淘宝的模拟登录还有豆瓣的模拟登录以及自动顶帖,以及京东商品的抢购。还有新浪微博的模拟登录。

比如像玩客云之类的就可以自己实现抢购代码了。

今天晚上会给大家免费直播分享如何模拟登录百度。

模拟登录属于爬虫中比较复杂的内容,也是服务器端最终对爬虫的限制策略,如果解决了模拟登录,很多信息都可以抓取下来了。

今晚的讲课会涉及以下库,想关注的小伙伴可以提前了解一下。Nodejs也可以实现相关的流程。

import requests import time import re import json from PIL import Image from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 import base64

关注公众号 pydatame 后获取我的联系方式,加我微信我拉你入群,群内通知今晚直播时间和链接。

另外欢迎大家加入我的知识星球和博客

1。本星球讨论 Python 数据相关。包括但不限于 Python 语言相关的进阶知识、基于 Python 的流行框架、数据抓取、大数据、数据分析以及数据挖掘的相关内容。 3。加入星球的小伙伴会得到向牛津大学数学系博士,香港大学计算机大数据、数据挖掘及数据库方向博士,香港中文大学统计学博士,香港城市大学数学系深度学习方向博士,百度腾讯今日头条小米等各大互联网公司相关岗位开发工程师提问的机会。我们会尽可能帮你分析解决在学习或探索中遇到的问题。

WechatIMG237.png

如果时间不允许的小伙伴可以看录播,星球内在直播结束后会分享录播视频,现在星球内也有淘宝模拟登录以及豆瓣模拟登录和顶帖的录播视频。

博客地址是 Python数据博客内有原创的分享文章,淘宝模拟登录的代码以及豆瓣模拟登录和自动顶帖的代码等等等等。

不喜欢付费的内容也可以加群免费看直播。

工作2年多的前端,现在迷茫了,如何更进一步的提升自己

$
0
0

已经在项目中使用的前端技能

  1. jquery,
  2. vue,
  3. hybrid(apiCloud)

业余学习的技能

  1. express + mongodb + cenOS(阿里云)
  2. koa2+ mysql

计划发展

  1. java
  2. react native
  3. python

选择哪一个好呢,如何更进一步的提升自己

求教mongoose 插件 使用

$
0
0

mongoose-delete,mongoose-findorcreate,mongoose-friends,mongoose-query 最近开发遇到这几个模块 网上对这几个模块解释很少,所以请教一下 这几个模块在mongoose中 具体是做什么的

https://eggjs.org/ 打不开了 是在维护吗?


egg.js重定向问题

$
0
0
  • 使用egg.js开发
  • 在post请求的controller中准备重定向到这个url
      const setLoginState = await this.service.portal.portal.getLoginState()
      this.ctx.redirect(setLoginState);
  • 前端的console 重定向为什么会产生options请求方式image.png

  • 看了使用的lib koa中的response的redirect源码没错啊

redirect(url, alt) {
    // location
    if ('back' == url) url = this.ctx.get('Referrer') || alt || '/';
    this.set('Location', url);

    // status
    if (!statuses.redirect[this.status]) this.status = 302;

    // html
    if (this.ctx.accepts('html')) {
      url = escape(url);
      this.type = 'text/html; charset=utf-8';
      this.body = `Redirecting to <a href="${url}">${url}</a>.`;
      return;
    }

    // text
    this.type = 'text/plain; charset=utf-8';
    this.body = `Redirecting to ${url}.`;
  },

各位在post请求中怎么重定向的啊

2018还有没有什么靠谱的科学上网工具

NestJS:我们一直在等待的精美的Node.js框架

$
0
0

NestJS 是一个精心制作的服务器端(后端)应用程序框架,以支持开发人员的生产力并让他们的生活更加快乐。

那么,它不仅是一个框架,它还是进入领域驱动设计,事件采购,微服务架构等先进工程概念领域的推动者。 所有软件包都以简单轻量级的形式打包,以便您可以选择 - 无论您决定使用整个框架还是仅重新使用其组件。

我是一个 PHP 编写的 Symfony 框架的粉丝。 在我的职业生涯中,我花了好几年的时间开发大型应用程序,它并没有让我失望。 它写得很好,作为一个客观的,具有良好文档的模块化 Web 框架,提供了良好的开发者体验。 与我描述 NestJS 完全一样。

Node.js 和包管理器 NPM 提供了功能全面的服务器端环境,灵活性强,运行速度极快,对开发人员来说具有巨大的灵活性,从而将开发到生产的时间缩短到几小时,而不是几天。

image.png

然而,尽管 Node.js 的优点很多,但它并不能解决最常见的问题,在我看来,这是最大的问题,所有的 NodeJS 现代框架似乎都没有受到熏陶 - 架构的灵活性。

有人可能会说 - 这不是决定项目架构的框架问题。 那么,我完全同意这一点,但是我们几乎在每个项目中都会看到一些众所周知的概念和模式。 在我看来,如果一个框架将开发人员推向了良好的架构决策,这是一件好事。

NestJS 到底是什么?

根据该项目的网站:

NEST 是构建高效,可扩展的 NodeJS 服务器端应用程序的框架。

这与 Node.js 语言相同,所以区别在哪里? 那么,重点是在细节:

它使用现代JavaScript,使用Typescript(保留与纯 JavaScript 的兼容性)构建,并结合了OOP,FP 和 FRP 的元素。

就是这样。 Nest 框架以一种非常活跃的方式鼓励开发人员尝试,学习和使用一些著名的软件工程范例。这不仅是介绍性的口号 - 在项目文档中我们找到了很多示例,指导和代码源,以便我们可以在几分钟内在项目中使用它们。 此外,所有这些新词汇的 NestJS 给我们参考它背后的知识。 所以如果你不知道一些模式 - 不用担心,你将会顺利地完成整个过程。

一些特性

NestJS 是一个完全用 TypeScript 编写的框架(它也支持 JS),它很容易测试,并且带来了所有必要的东西,你总是但您不知道该选什么。

  • 依赖注入容器 - NestJS 带有自己的DiC,这是一个在 JavaScript 世界中似乎被遗忘的实用工具,但我真的不能没有它。 有一些解决方案像 Inversify 或 Bottle,但 NestJS 有自己的解决方案。 它也支持工厂注入。
  • 模块化 - 在NestJS中,处于相同域边界内的应用程序的每个逻辑部分都是一个模块,它鼓励封装。
  • 可测试性 - 由于引入了 DiC 和 Modularisation,您可以根据服务构建应用程序, 使控制器的工作更容易进行测试。
  • 使用 TypeScript中 - 类型很好。 你可以给一个变量分配类型,减少可能出现的错误。

入门:构建一个简单的天气应用程序

在这篇文章中,我们将使用 Nest 框架和 OpenWeatherMap API 编写一个简单的天气应用程序。 准备项目 首先,让我们确保你已经安装了支持的 Node.js 版本:

node -v

需要高于 6.11.0 。 如果您没有安装Node.js或版本不正确,请安装或更新。 第二步是从 OpenWeatherMap 网站检索API密钥。 为了实现我们需要注册的功能,成功注册后,我们将能够从 API密钥标签中检索我们的API密钥 。 image.png准备就绪了。 让我们来设置这个项目。 为此,我将使用 Nest 的 TypeScript 初学者存储库(还有一种方法可以从头开始构建项目,但我很懒)。 它提供了良好的初学者体验,并拥有开始编写代码所需的一切。

  $ git clone https://github.com/nestjs/typescript-starter.git project
   $ cd weather-app /

安装依赖关系并启动:

$ npm i
$ npm run start

当安装了项目依赖关系并且应用程序成功启动后,您应该在控制台中看到以下输出,并在浏览器中指向 http://localhost:3000/的url,应该会给您热情而欢迎的Hello World! 文本。

> nest-typescript-starter@1.0.0 start /Users/mat/Development/weather-app> node index.js

[Nest] 31827 - 2018-1-13 11:39:32 [NestFactory] Starting Nest application...
[Nest] 31827 - 2018-1-13 11:39:32 [InstanceLoader] ApplicationModule dependencies initialized +7ms
[Nest] 31827 - 2018-1-13 11:39:32 [RoutesResolver] AppController {/}: +34ms
[Nest] 31827 - 2018-1-13 11:39:32 [RouterExplorer] Mapped {/, GET} route +2ms
[Nest] 31827 - 2018-1-13 11:39:32 [NestApplication] Nest application successfully started +1ms

image.png

安装 HTTP 客户端

我们已经建立了项目,获取天气数据的 API密钥和开发服务器,随时准备交付。 我们现在安装一个HTTP客户端,在这个区域我的个人偏好是 axios 。 为什么选择axios? 这是一个基于Promise 的客户端,它支持服务器端和客户端,并提供许多有用的功能,如:对JSON转换的自动响应和专用的工具 - moxios–使测试变得顺畅和轻松。

$ npm i --save axios

建立第一个服务

现在我们可以开始构建我们的第一个服务 为了做到这一点,让我们在我们的 src/ 文件夹中创建一个名为 weather.service.t s的文件:

import { Component } from '@nestjs/common';
import axios, { AxiosInstance } from 'axios';

@Component()
export class WeatherService {
    private client: AxiosInstance;

    constructor() {
        this.client = axios.create({
            baseURL: 'https://api.openweathermap.org/data/2.5/',
            params: {
                APPID: 'CHANGE_ME'
            }
          });
    }

    async ofCity(city: string): object {
        const response = await this.client.get('weather', {
            params: { q: city }
        });
        return response.data;
    }
}

我们正在创建一个封装 HTTP 客户端的类,以实现实际的 API 调用。 有一点需要注意的是类装饰器 @Component(),多亏了它,框架才会知道这是我们想要在 DiC 中注册的组件。 它有一种方法,这是异步的 - 它会返回一个Promise - 返回到控制器将由 Nest 处理。 HTTP通信层 接下来我们需要建立的是控制器。 在src /文件夹中创建一个名为 weather.controller.ts 的文件:

import { Get, Controller } from '@nestjs/common';
import { WeatherService } from './weather.service';

@Controller('weather')
export class WeatherController {
    constructor(private readonly weatherService: WeatherService) {}

        @Get()
        async root(): Promise< object > {
        const response = await this.weatherService.forCity('New York');
        return response;
  }

装饰器 @Controller(‘weather’)告诉框架我们期望这个控制器在 / weather 路由上作出响应。 然后,我们在类构造函数中注入了我们的 WeatherService ,并将其设置为名为weatherService 的私有属性。 最后是一个称为 root 的异步操作,它返回一个Promise,最终解析为一个对象。 它内部调用我们的 weatherService 并获得纽约的实际天气预报。 连接点 为了使我们的应用程序正常工作,我们需要做的最后一件事是将应用程序模块中的所有部分连接在一起:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { WeatherController } from './weather.controller';
import { WeatherService } from './weather.service';

@Module({
  imports: [],
  controllers: [AppController, WeatherController],
  components: [WeatherService],
})export class ApplicationModule {} 

保存文件,重启你的开发服务器,当你在浏览器中导航到url http://127.0.0.1:3000/weather时,你会看到天气服务的响应。 上面的代码是为了显示我们如何快速地在 NestJS 中构建一个好的东西。然而, 我看到一些改进, 这还没有做, 因为我想保持简单:

  • 返回类型的接口。 我们可以充分利用 TypeScript 和强类型所有的东西
  • 错误处理。 当 promise 不是 resolve 时,我们的控制器很可能会中断
  • 测试套件。 我们还没有写任何测试
  • 我们要返回整个数据 blob。我们只能去掉我们关心的值

概要

我们从理论上讨论了NestJS并做了一个实际的例子。 欲了解更多信息,请参阅框架的官方文档,其中包含大量随时可用的指导和代码片段。 Node.js 是为了扩展和实现实时网络应用程序的高效开发而创建的,它非常好。 现在我们已经有了 NestJS 框架来解决架构问题。

中文文档: https://docs.nestjs.cn英文官方文档:https://docs.nestjs.com

【2018 杭州】DataV 寻找 前端 & Node.js 资深研发、专家

$
0
0

DataV

https://datav.aliyun.com/目前奋斗在可视化前排,非常有意思的团队。

DataV的三个关键词:连接数据、可视化、分析。三个关键词可以这么解读:

  • 尽可能多的连接数据源,数据都有被展现、分析的需求。
  • 尽可能丰富的可视化手段,相同的数据不同的展现,天壤之别,有时候换个姿势结论立马清晰。
  • 尽可能强大的分析能力,交互分析是人探索数据的必备工具。

除了这三个尽可能之外,作为一个商业产品,还有两个要求:

  • 稳定性
  • 用户体验

另外我们在数据部门,数据化研发的的要求,也不能少。

目前产品在飞速成长,三个关键词给出了很高的要求(在node方向、在可视化方向、在前端方向) 欢迎优秀的你加入我们,挑战这些场景,一起来完成上面的 3 + 3

我们在寻找如下岗位的同学:

资深的Node研发、技术专家

  • 扎实的后端知识(深入了解Node.js、linux系统知识、熟悉常用数据库等)
  • 丰富的项目经验 加分,有中大规模的Node.js线上产品研发经验 加分
  • 熟悉大数据体系、有数据分析类产品使用/研发经验 加分
  • 有开源项目 加分

资深的前端研发、技术专家

目前平台正在升级阶段,重构升级 以及 国际化,非常好机会,我们寻找这样的你:

  • 扎实的前端基础,具备架构能力
  • 丰富的项目经验,有技术团队管理经验
  • 独挡一面,有技术热情,工作认真,勇于挑战难题
  • 有移动端经验,熟悉微信、微博等社交媒体开发的 +加分
  • 有后端经验,熟悉node.js/java +加分
  • 有开源项目、或参与的开源项目 +加分
  • 英语流利 +加分

全栈:

  • 扎实的前后端功底
  • 丰富的研发经验,有独立设计实现完整的产品经验 加分
  • 熟悉linux系统及常用工具 加分
  • 熟悉大数据体系 加分
  • 有数据分析类产品使用/研发经验 (如对算法挖掘了解更佳)加分
  • 有开源项目 加分

欢迎投递简历: jianxun.zxl@alibaba-inc.com, 邮件标题请备注: DataV-简历-$name

*** 注意:阿里集团的职位之间是互斥的,一份简历尽可能先投递到最中意的职位 ***

请问你们在用PM2监控进程的时候 也是这样吗?

Viewing all 14821 articles
Browse latest View live