Egg & Node.js 从⼩⼯坊⾛向企业级开发便便于统⼀一团队的开发模式,⼀一致的开发体验,⼀一次性学习成本 ▸ 跟应⽤用,插件区别不不⼤大,⼀一样有 Service / Config / Extend / Middleware / … ▸ ⽀支持多层继承,⽀支持⾃自定义加载规范 ▸ 基于 npm , 便便于统⼀一管控,升级,维护 代码君 v3.x // package.json { "name": "showcase", "egg": { "framework": 'app/model')); // 挂载 `ctx.model.news.list()` app.loader.loadToContext(directory, 'model'); }; 3.x 时代 - ⾃自定义加载规约 (Egg 的核⼼心能⼒力力 - Loader) yadan ��� app � ��� service � ��� extend ��� config � ��� config @ali/egg-tair … AliNode { 基⽯石 + ⼯工程平台 } tnpm SandBox … 社区化运作模式,内外继承,最⼤大程度复⽤用,⼀一份代码,⽆无双向同步 ▸ 知乎热⻔门问答:如何评价阿⾥里里开源的企业级 Node.js 框架 EggJS ▸ Egg 是阿⾥里里 Node.js 应⽤用的核⼼心基础设施,由各 BU 前端 Leader 合⼒力力共建。 ▸ ⼴0 码力 | 70 页 | 7.57 MB | 1 年前3
ThinkJS 3.0 中文文档中项目启动时,会自动加载 src/bootstrap/ 目录下的所有文件。3.0 中不再自动加载所有的 文件,而是改为: 在 Master 进程中加载 src/boostrap/master.js 文件 在 Woker 进程中加载 src/boostrap/worker.js 文件 如果还要加载其他的文件,那么可以在对应的文件中 require 进去。 配置 2.x 中会自动加载 src/config/ src/config/ 目录下的所有文件,3.0 中改为根据功能加载对应的文件。 hook 和 middleware 移除 3.x 里的 hook 和 middleware,改为 Koa 里的 middleware,middleware 的管理放在 src/config/middleware.js 配置文件中。 2.x 下的 middleware 类无法在 3.0 下使用,3.0 下可以直接使用 Application 类,执行 run 方法。 根据不同的环境(Master 进程、Worker 进程、命令行调用)处理不同的逻辑 如果是 Master 进程 加载配置文件,生成 think.config 和 think.logger 对象。 加载文件 src/bootstrap/matser.js 文件 如果配置文件监听服务,那么开始监听文件的变化,目录为 src/ 。 文件修改后,如果配置0 码力 | 129 页 | 2.12 MB | 1 年前3
ThinkJS 1.2 中文文档才能正常访问哦)。 框架默认的配置值请⻅见 附录 - 默认配置 App/Common/common.js 该⽂文件下定义⼀一些当前应⽤用常⽤用的函数,可以直接放在 global 下,该⽂文件在系统启动时⾃自动加载。 这些函数在其他地⽅方可以直接使⽤用,⽆无需在 require。 // 定义 APP 的根⺫⽬目录 global.APP_PATH = __dirname 注意: 配置参数的 key 不区分⼤大⼩小写(key 会强制转为⼩小写)。建议使⽤用⼩小写,便于阅读。 配置值除了是简单的数据外,也可以是数组、对象、函数等。 配置加载遵循下⾯面的加载顺序,且后⾯面加载的配置值覆盖前⾯面加载的值。 系统默认配置 -> 应⽤用配置 -> 调试配置 -> 模式配置 系统默认配置包含了所有的 ThinkJS 中⽤用到的配置,并给出了默认值。该⽂文件在 ThinkJS ⾥里,服务启动时会⾃自动调⽤用。 如果在⼊入⼝口⽂文件将 APP_DEBUG 设置为 true, 那么会⾃自动读取调试配置,配置⽂文件为 App/Conf/debug.js 。 如果该⽂文件不存,则不加载。 ThinkJS 除了默认的启 http 服务运⾏行,也可以命令⾏行下运⾏行,命令⾏行下对应的模式为 cli。 模式配置⽂文件为 App/Conf/mode.js ,该⽂文件内容格式如下: //0 码力 | 104 页 | 1.29 MB | 1 年前3
Node.js Manual & DocumentationCore Modules 核心模块 o File Modules 文件模块 o Loading from `node_modules` Folders 从 `node_modules` 目录中 加载 Optimizations to the `node_modules` Lookup Process 优化 `node_modules` 的查找过程 o Folders as Modules Caching 缓存 o All Together... 总结一下... o Loading from the `require.paths` Folders 从`require.paths`目 录中加载 Note:** Please Avoid Modifying `require.paths` **注意:** 请不要修改`requires.paths` Setting `require section. 进程对象,参见'process object'章节。 require() To require modules. See the 'Modules' section. 加载模块,参见'Modules'章节。 require.resolve() Use the internal require() machinery to look up the location0 码力 | 153 页 | 1.21 MB | 1 年前3
ThinkJS 2.2 中文文档src/common 通用模块目录,项目目录都是按模块来划分的, common 模块下存放一些通用的处理逻辑。 src/common/bootstrap 项目启动目录,该目录下的文件会自动加载,无需手动 require 。 可以在这个目录下文件里定义一些全局函数、注册中间件等常用的功能。 定义全局函数 // src/common/bootstrap/fn.js global.formatDate config/locale/[lang].js 国际化语言包配置,如: locale/en.js , locale/zh-cn.js 。 配置格式采用 key: value 的形式,并且 key 不区分大小写。 加载配置文件 框架支持多种级别的配置文件,会按以下顺序进行读取: 框架默认的配置 -> 项⽬目模式下框架配置 -> 项⽬目公共配置 -> 项⽬目模式下的公共配置 -> 模块下的配置 配置读取 通过 //是否开启 cluster,值为具体的数值时可以配置 `cluster` 的个数 timeout: 120, //120 seconds auto_reload: false, //⾃自动重新加载修改的⽂文件,development 模式下使⽤用 resource_on: true, // 是否处理理静态资源请求, proxy_on 开启下可以关闭该配置 resource_reg:0 码力 | 277 页 | 3.61 MB | 1 年前3
NodeJS 中文文档 V0.2.3对象请参见'process'章节。 require() require() require() require() To require modules. See the 'Modules' section. 用来加载模块。参见“Modules 模块”这一节。 require.paths require.paths require.paths require.paths 一个保存了 require 函数搜索路 同 process.compile 函数类似,Script.runInThisContext 函数编译执行 code 参数包含的代码并返回结果,就如同这 些代码是从 filename 参数指定文件中加载的一样。这些代码不能访问本地作用域。filename 参数是可选的。(译 注:filename 参数的作用是为了更好的输出错误信息) 示例:演示使用 Script.runInThisContext [filename]) [filename]) [filename]) Script.runInNewContext 将代码编译并在 sandbox 参数指定的作用域内执行代码并返回结果,就如同代码是从文 件中加载的一样。执行的代码并不访问本地作用域,sandbox 参数指定的对象将作为代码执行的全局对象。 sandbox 和 filename 参数都是可选的。 例子:编译并执行一段代码,这段代码递增并新建一个全局变量。这些全局变量都保存在0 码力 | 62 页 | 542.14 KB | 1 年前3
Node.js在YunOS中的最佳实践 postMessage() onmessage() 14 Worker + SAB举例: 15 性能优化的实践(一) JavaScript to na(ve: 将系统级JS模块合并加载,大幅减少IO次数,提高系统整体效率。 Combine JS files Compress & Minify Covert to NaZve (so) Compile Zme: code Run JS code 16 性能优化的实践(二) Code cache: 充分利用V8引擎的能力,预先将JavaScript代码编译好生成cache文件 运行时加载cache文件,跳过编译过程,直接运行预编译的代码,提高运行效率 a.js Compile Zme: V8 a.js.cache Run Zme: requie(‘a.js’); ScriptCompiler::Source::GetCachedData() 性能优化的实践(三) Lazy Load: require()时不真正加载模块,而是在第一次访问对象的时候才真正加载模块 通过将加载时间分散到运行时刻,减轻启动时的压力,优化启动时间 18 性能优化的实践(四) 其他 - Timer coalescing - 模块可卸载0 码力 | 20 页 | 1.37 MB | 1 年前3
Node 的设计错误不不是浏览器器 JavaScript ⼯工作⽅方式。不不能在脚本标记 src 属性中省略略“.js”。 • 模块加载器器必须在多个位置查询⽂文件系统,试图猜测⽤用户的意图。 遗憾:index.js 我认为它很可爱,因为有 index.html。 它不不需要复杂的模块加载系统。 在 require ⽀支持了了 package.json 后,它变得特别不不必要。 我的 Node com/deno_testing@0.0.5/testing.ts" import { log } from "./util.ts" • 导⼊入时必须提供扩展名。 • 远程 URL 在第⼀一次加载后被⽆无限期地提取和缓存。只有提供了了--reload 标志,才 能再次获取资源。 • Vendoring 可以通过指定⾮非默认缓存⽬目录来完成。 Deno ⽬目标:内置于可执⾏行行⽂文件中的0 码力 | 28 页 | 767.84 KB | 1 年前3
聊聊 Node.js 构建部署时我们要关心的数据๏构建耗时 ๏… ‣ 应用健康分 应用健康分 应⽤用稳定性 基线健康度 构建部署质量 代码质量量 用户感知层 线上启动时 日常迭代 代码质量 ‣ 应用稳定性 ‣ 页面加载时长 ‣ 可用时长 ‣ apm ‣ … ‣ 基线健康度 ‣ 框架视角:Node.js 版本 / 框架版本等先进性内容 ‣ 依赖视角:有风险的、落后的依赖等 ‣ … ‣ ‣ 代码安全扫描 ‣ 代码巡检市场 应用健康分 应⽤用稳定性 基线健康度 构建部署质量 代码质量量 用户感知层 线上启动时 日常迭代 代码质量 ‣ 应用稳定性 ‣ 页面加载时长 ‣ 可用时长 ‣ apm ‣ … ‣ 基线健康度 ‣ 框架视角:Node.js 版本 / 框架版本等先进性内容 ‣ 依赖视角:有风险的、落后的依赖等 ‣ … ‣0 码力 | 47 页 | 5.80 MB | 1 年前3
全栈⼯程师之路 Node.js• jade • bootstrap、bootstrap-table • jquery • gulp • nginx • 3)moa-api Features • ⾃自动加载路由 • ⽀支持mongodb配置 • 集成mongoosedao,快速写crud等dao接⼝口 • ⾃自带⽤用户管理 • 使⽤用jsonwebtoken做⽤用户鉴权 • ⽀支持migrate测试0 码力 | 50 页 | 1.35 MB | 1 年前3
共 10 条
- 1













