完整的 Meteor NPM 集成
在Meteor中,你只能使用包内的模块。你不能直接将模块与流星应用一起使用。此软件包解决了该问题
文章目录
- 源码下载地址
- 安装
- 定义软件包
- 使用软件包
- 在 Meteor 方法中使用 npm 模块的示例
- 应用程序接口
- 异步实用程序
- Async.runSync(函数)
- Meteor.sync(函数)
- Async.wrap(函数)
- Async.wrap(对象,函数名称)
- Async.wrap(对象,函数名称列表)
源码下载地址
点击这里下载源码
安装
meteor add meteorhacks:npm
然后启动您的应用并按照说明进行操作。
定义软件包
初始化 npm 支持后,你的应用内将有一个称为文件名的文件名。在该文件中定义包,如下所示。
{"redis": "0.8.2","github": "0.1.8"
}
您必须为 npm 模块定义一个绝对版本号
如果需要从特定提交安装 npm 模块,请使用以下语法:
{"googleapis": "https://github.com/bradvogel/google-api-nodejs-client/archive/d945dabf416d58177b0c14da64e0d6038f0cc47b.tar.gz"
}
以上内容可以使用 github 版本生成。你要用的是版本,而不是.<commit hash>.tar.gzarchive/<version number>.tar.gz
使用软件包
你可以使用 method 访问服务器端的 npm 模块,并随心所欲地使用它。 大多数 npm 模块都提供带有回调或承诺的异步 API。所以,你不能直接在Meteor上使用它们。正因为如此,这个软件包附带了一组方便的异步实用程序,让你的生活更轻松。
在 Meteor 方法中使用 npm 模块的示例
if (Meteor.isClient) {getGists = function getGists(user, callback) {Meteor.call('getGists', user, callback);}
}if (Meteor.isServer) {Meteor.methods({'getGists': function getGists(user) {var GithubApi = Meteor.npmRequire('github');var github = new GithubApi({version: "3.0.0"});var gists = Async.runSync(function(done) {github.gists.getFromUser({user: 'arunoda'}, function(err, data) {done(null, data);});});return gists.result;}});
}
应用程序接口
仅在服务器端可用
Meteor.npmRequire(npmModule名称)
此方法加载您在文件中指定的 NPM 模块。
var Github = Meteor.npmRequire('github');
Meteor.require(npmModule名称)
同上。但已弃用。
异步实用程序
仅在服务器端可用 Async Utitlies 可以通过
meteorhacks:async作为单独的软件包提供
Meteor API 是同步执行的。大多数 NodeJS 模块都是异步工作的。 因此,我们需要一种方法来弥补差距。Async Utilities 来拯救你。
Async.runSync(函数)
Async.runSync()暂停执行,直到调用 callback,如下所示。done()
var response = Async.runSync(function(done) {setTimeout(function() { done(null, 1001);}, 100);
});console.log(response.result); // 1001
done()callback 需要 2 个参数。 和对象。您可以将它们作为 的返回值获取,如上例中的响应所示。errorresultAsync.runSync()
返回值是一个对象,它有 2 个字段。 和。error result
Meteor.sync(函数)
相同,但已弃用。Async.runSync
Async.wrap(函数)
包装一个异步函数,并允许它在 Meteor 中运行,没有回调。
//declare a simple async function
function delayedMessage(delay, message, callback) {setTimeout(function() {callback(null, message);}, delay);
}//wrapping
var wrappedDelayedMessage = Async.wrap(delayedMessge);//usage
Meteor.methods({'delayedEcho': function(message) {var response = wrappedDelayedMessage(500, message);return response;}
});
如果回调有结果,它将从包装的函数返回。如果出现错误,则会抛出。
Async.wrap(function)与 非常相似。
Meteor._wrapAsync
Async.wrap(对象,函数名称)
与 非常相似,, 但此 API 可用于包装对象的实例方法。Async.wrap(function)
var github = new GithubApi({version: "3.0.0"
});//wrapping github.user.getFrom
var wrappedGetFrom = Async.wrap(github.user, 'getFrom');
Async.wrap(对象,函数名称列表)
与 非常相似,, 但此 API 可用于包装对象的多个实例方法。Async.wrap(object, functionName)
var github = new GithubApi({version: "3.0.0"
});//wrapping github.user.getFrom and github.user.getEmails
var wrappedGithubUser = Async.wrap(github.user, ['getFrom', 'getEmails']);//usage
var profile = wrappedGithubUser.getFrom('arunoda');
var emails = wrappedGithubUser.getEmails();
相关文章:
完整的 Meteor NPM 集成
在Meteor中,你只能使用包内的模块。你不能直接将模块与流星应用一起使用。此软件包解决了该问题 文章目录 源码下载地址安装定义软件包使用软件包在 Meteor 方法中使用 npm 模块的示例应用程序接口异步实用程序Async.runSync(函数)Meteor.sy…...
智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…...
解决 MATLAB 遗传算法中 exitflg=4 的问题
一、优化问题简介 以求解下述优化问题为例: P 1 : min p ∑ k 1 K p k s . t . { ∑ k 1 K R k r e q l o g ( 1 α k ∗ p k ) ≤ B b s , ∀ k ∈ K p k ≥ 0 , ∀ k ∈ K \begin{align} {P_1:}&\mathop{\min}_{\bm{p}}{ \sum\limits_{k1}^K p_k } \no…...
云卷云舒:云原生业务应用成熟度模型
笔者最近学习了信通院发布的《云原生应用成熟度的评估模型》,做如下解读: 一、概述 云原生业务应用成熟度模型从企业业务应用基础设施域、应用研发域以及服务治理域等三个能力域二十个过程域综合评估企业业务应用在弹性、高可用、自愈性、可观测性以及…...
STM32的以太网外设+PHY(LAN8720)使用详解(5):MAC及DMA配置
0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册1 MAC及DMA配置 1.1 使能ETH时钟 stm32的ETH外设挂载在AHB1总线上,位于RCC_AHB1ENR的bit25-bit27: 相关语句如下: RCC_AHB1PeriphClockCmd(RCC_AHB1…...
GitHub、Gitee、Gitlab共用一个SSH密钥配置
目录 1. 说明2. 生成ssh2-1. 设置全局邮箱和用户名2-2. 生成全局ssh 3. Github、Gitee配置ssh3-1. Github配置3-2. Gitee配置 1. 说明 由于我的Github、Gitee、Gitlab用的邮箱不同,向不同的平台提交代码时都需要验证密码,非常麻烦所以配置了一个共用的S…...
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
文章目录 Hive集成表引擎创建表使用示例如何使用HDFS文件系统的本地缓存查询 ORC 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询 Parquest 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询文本输入格式的Hive表在Hive 中建表在 ClickHouse 中建表 资料…...
用C求斐波那契数列-----(C每日一编程)
斐波那契数列: 斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。 递推…...
在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器
在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外&#x…...
持续集成交付CICD:Jira 远程触发 Jenkins 实现更新 GitLab 分支
目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira新建模块 4. Jira 通过Webhook 触发Jenkins流水线 3.Jira 远程触发 Jenkins 实现更新 GitLab 分支 二、问题 1.Jira 配置网络钩子失败 2. Jira 远程触发Jenkins 报错 一、实验 1.环境 (1)主机 …...
基于SSM的面向TCP_IP的网络互联实验平台
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM的面向TCP和IP的网络互联实验平台…...
【IDEA】try-catch自动生成中修改catch的内容
编辑器 --> 文件和代码模板 --> 代码 --> Catch Statement Body...
2024 十大AI预测
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【Linux基础开发工具】gcc/g++使用make/Makefile
目录 前言 gcc/g的使用 1. 语言的发展 1.1 语言和编译器自举的过程 1.2 程序翻译的过程: 2. 动静态库的理解 Linux项目自动化构建工具-make/makefile 1. 快速上手使用 2. makefile/make执行顺序的理解 前言 了解完vim编辑器的使用,接下来就可以尝…...
Windows Nginx版本升级
记录windows系统上nginx版本从1.22.1直接升级到1.25.3,全程一步到位! nginx官网: https://nginx.org/ C:\Windows\system32>cd C:\nginx# 查看当前nginx版本C:\nginx>nginx -v nginx version: nginx/1.22.1# 停止nginx服务C:\nginx>net stop ng…...
kubernetes集群 应用实践 kafka部署
kubernetes集群 应用实践 kafka部署 零.1、环境说明 零.2、kafka架构说明 zookeeper在kafka集群中的作用 一、Broker注册 二、Topic注册 三、Topic Partition选主 四、生产者负载均衡 五、消费者负载均衡 一、持久化存储资源准备 1.1 创建共享目录 [rootnfsserver ~]# mkdir -…...
Featured Based知识蒸馏及代码(3): Focal and Global Knowledge (FGD)
文章目录 1. 摘要2. Focal and Global 蒸馏的原理2.1 常规的feature based蒸馏算法2.2 Focal Distillation2.3 Global Distillation2.4 total loss3. 实验完整代码论文: htt...
CentOs 安装MySQL
1、拉取安装包 wget --no-check-certificate dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm 成功拉取 2、安装 yum install mysql-community-release-el6-5.noarch.rpm 过程中可能需要你同意一些东西,y 即可 然后稍微检查一下 yum repolist enabled…...
基于Java (spring-boot)的在线考试管理系统
一、项目介绍 系统功能说明 1、系统共有管理员、老师、学生三个角色,管理员拥有系统最高权限。 2、老师拥有考试管理、题库管理、成绩管理、学生管理四个模块。 3、学生可以参与考试、查看成绩、试题练习、留言等功能 二、作品包含 三、项目技术 后端语言&…...
5. 结构型模式 - 外观模式
亦称: Facade 意图 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下, 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
