14 天前 / heartEngine
YodaOS 也支持 npm 仓库,开发者可以根据自己的需要在 OS 中运行所需的模块,不过并不推荐使用一些实现起来很重的模块,因为 YodaOS 需要支持中低端设备,所以有时候也需要考虑到性能方面的因素。 如果遇到一些 npm 仓库确实实现很重,但又不得不用的时候,在 YodaOS 上,我们一般的做法是使用 N-API 桥接 C/C++ 模块,然后保证 JavaScript API 与对应的 npm 包一致。 同时借助于 N-API,开发者可以将任何 Linux 的库移植到 YodaOS 上,并通过 N-API 以 JavaScript API 方式使用,可以这么理解,N-API 之于 YodaOS,就像 JNI 之于 Android。
34 天前 / 西岭老湿
作者简介 付文平,携程机票研发部前端开发总监。2011年加入携程,主要负责携程机票PC、H5、Hybrid业务方面的开发工作。先后负责机票PC前后端分离,H5 Swift改版,机票React Native技术的推进,重点关注Node.js技术和产品体验。 本文来自付文平在“2018携程技术峰会”上的分享。 Nodejs自从2009年被开发出来以后,至今已经走过了9个年头,目前最新的稳定版已经到了10.13。从问世以后,Nodejs就深受前端工程师的喜欢。 在携程内部,Nodejs也是应用广泛,从开发工具到web应用,从客户端到服务端,都能见到它的身影。我们也从最初用Node.js......
36 天前 / Richardwei
订阅使用llnode追溯OOM源头Jan 13, 2019 | 4.6k 字 | 19 分钟 背景公司部分后端的 Node.Js 服务在2018年年初接入了SOA基础平台(服务拆分、下沉),由于对接得非常匆忙,因此在上游服务这边的代码大部分仅仅考虑了如何接入封装好的 SDK,并未及时考虑在具体场景下接入是否会存在较明显的风险甚至影响服务的稳定。 在对接底层服务的时候,一个非常重要的目的是将不同的业务线所使用的同一个模型的「写」操作权限收拢至一个独立的服务提供相关的功能,目的是为了对同一个模「型\数据表」进行不同应用的写入、更新权限分应用验证,以及敏感数据、字......
36 天前 / 前端神盾局
注: 1. 本文涉及的nodejs源码如无特别说明则全部基于v10.14.1 Nodejs中对模块的实现本节主要基于NodeJs源码,对其模块的实现做一个简要的概述,如有错漏,望诸君不吝指正。 当我们使用require引入一个模块的时候,概况起来经历了两个步骤:路径分析和模块载入 路径分析路径分析其实就是模块查找的过程,由_resolveFilename函数实现。 我们通过一个例子,展开说明: const http = require('http'); const moduleA = requie('./parent/moduleA'); 这个例子中,我们引入两种不同类型的模块:核心模块-http和自定义模块moduleA 对于核心模块而......
89 天前 / 程序员阿宇
前提我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂,那么如何更优雅的写判断逻辑,本文带你试一下。 举个例子先看一段代码 /*** 按钮点击事件* @param {number} status 活动状态:1 开团进行中 2 开团失败 3 商品售罄 4 开团成功 5 系统取消*/const onButtonClick = (status) => {if (status == 1) {sendLog('processing') jumpTo('IndexPage')} else if (status == 2) {sendLog('fail') jum......
93 天前 / fdr
首发于TCB·云开发写文章你不知道的Node.js性能优化Starkwang研发工程师@腾讯云 / Node.js Collaborator303 人赞了该文章“当我第一次知道要写这篇文章的时候,其实我是拒绝的,因为我觉得,你不能叫我写马上就写,我要有干货才行,写一些老生常谈的然后加上好多特技,那个 Node.js 性能啊好像 Duang~ 的一下就上去了,那读者一定会骂我,Node.js 根本没有这样搞性能优化的,都是假的。” ------ 斯塔克·成龙·王1、使用最新版本的 Node.js仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 N......
99 天前 / 苏简
前言最近在写一个博客的项目,前端用的 vue+typescript+element-ui,后台则选择了 koa2+typescript+mongoDB的组合。写这篇博客的目的也是在写后台的过程遇到一些问题,查了很多资料才解决。于是权当总结,亦是记录,可以给别人做一个完整的参考。 基本信息这里列出来的是会用到的一些配置信息,毕竟一直都在更新,可能这里说的以后某个版本就不支持了。 "nodemon" : "^1.18.3","ts-node" : "^7.0.1","typescript" : "^3.1.1""node" : "9.0.0"问题描述这次遇到的问题其实都和typescript有关。koa2已经......
100 天前 / 博弈
轻松分析Node.js应用程序有许多第三方工具可用于分析Node.js应用程序,但在许多情况下,最简单的选择是使用Node.js内置的分析器,内置的分析器使用V8内部的分析器,在程序执行期间定期对堆栈进行采样,它将这些样本的结果以及重要的优化事件(如jit编译)记录为一系列tick: code-creation,LazyCompile,0,0x2d5000a337a0,396,"bp native array.js:1153:16",0x289f644df68,~code-creation,LazyCompile,0,0x2d5000a33940,716,"hasOwnProperty native v8natives.js:198:30",0x289f64438d0,~code-creation,LazyCompile,0,0x2d5000a33c20,284,"ToName n......
100 天前 / 博弈
Docker化Node.js Web应用程序此示例的目的是向你展示如何将Node.js应用程序放入Docker容器中,该指南旨在用于开发,而不用于生产部署,本指南还假设你有一个有效的Docker安装,并且基本了解Node.js应用程序的结构。 在本指南的第一部分中,我们将在Node.js中创建一个简单的Web应用程序,然后我们将为该应用程序构建一个Docker镜像,最后我们将该镜像作为容器运行。 Docker允许你将具有所有依赖关系的应用程序打包到一个称为容器的标准化单元中,用于软件开发,容器是Linux操作系统的简化版本,镜像是你加载到容器中的软件。 创建Node.js应用程序......
107 天前 / Richardwei
很少总结 Node.Js 相关的调试以及优化技巧,正好最近在做性能调优并取得了不错的效果,借此机会总结和分享一下Teambition 是一款实时协同的跨平台应用,相关的业务接口也是处于读多写少的场景,因此主要的性能瓶颈也是出现在接口平均响应速度慢、不稳定等方面,此次我将结合Teambition实际业务从以下几个维度来回顾总结优化的整个过程:我们的接口是如何变...
134 天前 / 58无线
async_hooks模块是Node.js 8.0中增加的特性,旨在帮助开发者追踪 Node.js 创建的异步调用资源的生命周期情况。目前此模块还处于Experimental阶段,不建议用于线上,不过在我们开发时会大有帮助。Async Hooks 使用async_hooks的 api 很简单,使用async_hooks.createHook(callback...
152 天前 / xizhibei
在上一篇的 gRPC 的介绍以及实践 中,而在文末,我简单介绍了给 Node.js 做的 grpc-helper,但是现在,我觉得得用一篇完整的博客来好好介绍,毕竟还是想要给大家用的,以下我会介绍我实现这个工具的过程,以及我的一些实现思路。其实在这之前,我看了官方的讨论,而且也调研了当中提到一些帮助类工具,比如 grpc-caller,因该说我不太喜欢这种 ...