导航:首页 > 知识产权 > nodejs版权

nodejs版权

发布时间:2021-09-27 02:32:51

A. 如何用JS调用几十万原生API

《近匠》HBuilder:如何用JS调用几十万原生API?

发表于2014-04-15 18:02| 次阅读| 来源CSDN| 0 条评论| 作者翟方庆

近匠访谈开发工具HBuilder王安DCloudHTML5
摘要:《近匠》第25期:HBuilder是DCloud开发的一套Web开发IDE,它通过完整的语法提示和代码输入法、代码块等,大幅提升HTML、JS、css的开发效率。更有意思的是,它可以利用JS调用原生API。
CSDN:请讲讲团队和您以往的从业经历?
DCloud CEO王安:我们团队从03年起开始做手机App,从J2me、Symbian、Win mobile、Brew一直做到现在的Android、iOS和WP。之前一直在为企业市场提供跨平台手机App的无线中间件。
后来我们看好HTML5的前途,而且也经不住toC市场的诱惑,就毅然出来二次创业。成立了 DCloud.io,开始做基于HTML5的生态系统服务,包括开发工具和云服务。


我们是W3C的会员,也是HTML5中国产业联盟的发起单位。我们是一个典型的轻团队,人不多,但极客化。我们的合伙人之一王淮也在Facebook工作了很久,给我们带来了很多硅谷的模式。
CSDN:为什么要做HBuilder这样一款工具?
王安:人称HTML5是“性、工、能”缺失,其中“工”指工具不给力,确实如此。
任何主流编程语言,都有优秀的开发IDE,不管是java、.net、Obj-C,但HTML5领域却一直在用低效的文本编辑器开发。我个人用了十几年文本编辑器,对比我熟悉的其他语言的IDE,效率也实在让我受不了。我们就动手开发了HBuilder。
HTML十几年前初生时,是简单的标记语言,确实文本编辑器足矣。那时候写页面的人都不被视为真正的程序员。但时代不同了,现在JS、css已经发展为真正的编程语言,一个工程会非常庞大,此时没有IDE会很低效。就像用文本编辑器写java或Obj-C一样,效率比专业IDE差很多。
过去也确实没有太好的HTML5 IDE,更不用提免费的好工具。因为web IDE开发确实很困难,web语法库没有统一标准,月月更新,JS是无类型的动态语言……
但是有问题,就会有解决问题的人。所以我们花费大力气,建立最全的语法库和浏览器兼容数据库,开发动态JS解析引擎,开源框架语法库。并且我们在开发效率提升上下了非常大的功夫,快是HBuilder最大的特点,能提升数倍开发效率。
另一方面,HTML5的重要价值是开发手机App,HBuilder为开发者提供移动App开发的全套支持,支持插上数据线真机联调,不需xcode等原生开发环境就能打包手机App。此外,我们有项创新的技术是JS调用几十万原生API。
CSDN:HBuilder是针对移动应用的哪一个环节?在这个环节中,现在是一种什么状况?格局是什么样的?
王安:使用HTML5、JS、css开发跨平台手机App,这类工具其实之前已经有Phonegap、Titanium。从品类相比,Phonegap只有Runtime没有IDE,Titanuim的IDE是为其特殊API而制作的专有工具。但HBuilder是一个通用的HTML5开发IDE且又内置了手机runtime。也就是开发者只需要HBuilder就够了,PC web、Mobile web、App,一个工具一套代码。
我们推崇一个理念叫“响应式应用”:一套代码根据不同运行环境调用不同能力来优化用户体验。比如文本框,在普通浏览器下就是一个文本输入框,在Chrome浏览器下运行时加个判断调Chrome的语音输入,而运行在App模式下,则再加一个判断调用原生的语音识别SDK,比如plus.speech。这样一个应用可以根据设备的不同而最大化的优化用户体验,这种模式很有魅力,对用户而言体验更好,对开发者而言成本更低。
当然,比其他同类产品更神奇的一点是,HBuilder里能通过JS代码的写法操作几十万原生API,即Obj-C和Android原生的对象。
CSDN:HTML5在跨平台App开发上有哪些问题?
王安:前景美好,但却有四个致命缺点阻碍它的爆发,就是“性、工、能”缺失,碎片化严重。相对于原生,HTML5的App性能低,工具差,能力弱。原生虽然不跨平台,但HTML5的浏览器兼容性也让开发者挠头。HBuilder为了解决这些难题做了很多努力。
1. 先说工具
HBuilder大幅提升了HTML5开发效率。并且也拥有最全且实时更新的HTML5新语法库。浏览器更新版本后一周内其新增的语法就可以被HBuilder提示出来。
HBuilder追求快,还有一个目的,就是降低开发者对框架的依赖。PC Web里框架非常流行,很多框架简化了开发。但是框架的简化开发建立在性能下降的基础上,手机上HTML5本来就慢,层层封装后只会越来越慢。但开发者使用HBuilder会发现,在HBuilder里不用框架开发的速度,比用其他开发编辑器配合框架的速度,更快。
目前主流HTML5开发工具都更新在没有手机真机联调等功能,HBuilder提供了这些功能才能有效的语法库里帮助开发者开发手机App。

2. 浏览器兼容性
由于浏览器内核不同,自有扩展语法多,新语法增加速度快,导致碎片化很严重,而且是持续性的给开发者造成困扰。HBuilder里每个语法,都有浏览器兼容性说明,是目前最全的浏览器兼容数据库。见下图,-webkit-user-select这个属性的值域all,IE和Firefox自然不支持,图标为灰色。但同为webkit内核,Chrome支持;而Android浏览器不支持,图标为灰色;Safari也只有7.0以上才支持,图标是半亮。


有人说手机上都是webkit内核浏览器,应该没有兼容性问题。但上图告诉开发者残酷的真相:iOS、Safari、Android浏览器、Chrome安卓版,主流的3款手机浏览器一样有兼容性问题。Google和Apple联手打破IE的垄断后,又开始分裂,Chrome去年另起了Blink引擎,开始独立扩展语法。另外虽然Safari的Mac版和iOS版有点差别,但不多;而Chrome的Android版和Android系统自带的浏览器完全是2个产品。作为开发者,我甚至有点怀念IE垄断市场的日子。
我们努力做出这个浏览器兼容库,希望可以帮助到广大开发者。

3. 能力
HTML5规范的好处是跨平台的,但坏处是规范能力比原生差非常多。为了解决这个问题,我们推出了两套方案:HTML5+的跨平台规范和JS直调原生API。

HTML5+的跨平台规范:开发者常用的手机能力,封装在HTMLplus.org规范里,包括二维码、语音输入等,比如在JS里输入plus.barcode调用二维码,plus.speech调用语音输入。开发一次在不同手机上都可以运行。JS直调原生API:我们提供了plus.ios和plus.android这2个很神奇的对象,使得web开发者不用学习Obj-C,不用买Mac设备,就能在JS里调用原生对象。我们可以这么定义一个JS变量,但实际上是Obj-C对象:我们可以这么定义一个JS变量,但实际上是Obj-C对象:JS直调原生API:我们提供了plus.ios和plus.android这2个很神奇的对象,使得web开发者不用学习Obj-C,不用买Mac设备,就能在JS里调用原生对象。我们可以这么定义一个JS变量,但实际上是Obj-C对象:
var a = plus.ios.implements("NSObject",{"authenticationChanged:":authenticationChanged});
或者如下图中的:var Intent = plus.android.import("android.content.Intent");其中的"android.content.Intent"是Android的原生类。这段代码就是使用JS方式给在安卓手机桌面创建一个App快捷方式。这样,使用HTML5编程的App,在能力方面就和原生一样强大了。 以前用HTML5做的游戏都无法调用Game Center,O2O应用也调不了Passbook,现在这些都轻而易举。我们相信这对于web工程师而言,是极大的能力解放,充满机会的一扇新窗口!
4. 性能
HTML5应用的性能一直是这个产业发展的瓶颈。
手机硬件比PC差、HTML5作为解释性语言比原生的编译型语言性能差、手机浏览器的默认控件样式未优化导致需要在应用层重新封装UI。这一系列问题叠加在一起,使得性能成为所有HTML5开发者心头的痛。
另外前端工程师大多长于UI,相比服务器工程师,他们的代码性能也要低不少。比如前端工程师很习惯使用框架,框架层层封装越来越慢,性能如何上的去。HBuilder在解决这个问题上也花费了很多心血:
a. 调用原生绘制界面
在HTML5+规范里有一个plus.ui的子集。一些原生样式或动画,比如翻页动画或下拉刷新,使用HTML5+JS+css模拟要写很多代码,执行起来很慢,此时通过plus.ui扩展就可以在窗体上设置一块区域,交给原生绘制。性能可大幅提升。
b. 性能第一的UI库
以前宣称为手机优化的框架,其实都不是把性能作为产品取舍的第一优先,或者为了框架使用者方便、或者为了框架维护者方便而牺牲了执行性能。我们决定自己做一个。这个项目我们还在开发中,不久会上线。
我们没有把它称为框架而是叫UI库,是因为这里的控件都是使用最简单的css样式的,直接写class=”xxx”。相比于写成data-role,然后在JS运行时才替换Dom,使用class的方式要高效的多。
控件含有的必要的JS代码,也是本着性能优先的原则开发的,代码极其精简高效,没有$等三方框架,但又可以跨手机浏览器。并且这套UI库会和HBuilder的打包机、Runtime深度整合,做到更高性能的优化。
CSDN:相对于编写大量JS实现来说,HBuilder利用JS调用原生API,有哪些优点?
王安:JS调用原生API,最大的优点,是大大强化了HTML5的能力,突破了浏览器的限制,原生有几十万API,数量远多于HTML5。比如拦截Android来电。
JS的执行效率肯定还是低于原生的,提升性能需要使用前述方案。
这项技术对于JS程序员来讲是非常友好易学的,他不需要学习原生语言和配置开发环境,只需要查询每个原生对象是做什么用的,然后在JS的plus.ios或plus.andriod里把原生类名作为参数传进去,就可以通过JS调用该原生对象的方法。
我们还制作了一批常用原生代码模板,包括创建快捷方式、登录game center的样例代码已经预置在HBuilder里。
CSDN:JS调用原生API,是如何实现的?
王安:这个非常复杂,不同的api需要不同的方法,手机、云、IDE的共同配合。IDE的显示代码、打包机编译、runtime实际运行这几种情况下执行码是不同的。
CSDN:HTML5跨平台开发领域的趋势是怎么的?
王安:HTML5的光明前途是毋庸置疑的,当Java被拦在iOS门外时、当终端和屏幕越来越多样时,HTML5的简单易用和跨平台这些特点都代表了未来的方向。
现在的问题仅仅是阻碍HTML5发展的那几个难题,会在何时、会被哪些人解决。当性能、工具、能力、兼容性得到有效突破时,HTML5必将迎来发展爆发。
CSDN:接下来针对HBuilder,Dcloud还有哪些计划?
王安:除了上面提到的高性能手机UI框架,HBuilder下一步会引入SNS和UGC,强化插件体系,联合众多开发者打造大家更满意的工具和服务。我们很认真的开发着这个免费工具,也希望所有开发者都参与到这个工具的打造中来。目前HBuilder已经在 github.com/dcloudio上设立了3个开源项目,欢迎大家一起打造自己满意的工具。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

B. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:彭勇
链接:http://www.hu.com/question/19599986/answer/13723064
来源:知乎

早期,我们使用 Debian 作为服务器软件,后来转向了CentOS,主要原因如下:

1、CentOS/RHEL的生命周期是7年,基本上可以覆盖硬件的生命周期,也就意味着一个新硬件安装以后,不用再次安装操作系统。要知道重新折腾一个生产机是很麻烦而且有风险的事情。

[2012.2.1]今天刚刚收到红帽子的通知邮件,RedHat 5, RedHat 6的生命周期,延长到10年,太牛叉了。这个对企业用户很重要。

而Debian的生命周期是不固定的,一般新版本发布以后,上个版本再维护18个月。而Debian的版本发布时间间隔不稳定,经常会延期。综合起来一个版本的生命周期一般在3~4年。

[2014.4.24]Debian 宣布对Squeeze(6.0),提供5年的LTS长期支持。

Ubuntu的LTS版生命周期是5年。

如果你选用了 Debian 或者 Ubuntu作为服务器,等生命周期过了以后,就没有安全补丁,你的服务器就会裸奔或者需要重新安装系统。

2、RedHat是一个值得尊敬的开源公司,长期以来Linux内核RedHat的贡献程度都是最多的。可以这么说,如果一个Linux方面的问题,RedHat搞不定,那么也很少有其他公司可以搞定了。公司有一批Linux内核方面的如雷贯耳的大牛,比如:

Alan Cox - Core developer, numerous contributions
Ingo Molnar - x86 subsystem maintainer
Al Viro - VFS subsystem maintainer, linux内核贡献第二多的个人
David Miller - Sparc Port maintainer, linux网络部分开发者, linux内核贡献最多的个人
Jeff Garzik - Sata subsystem maintainer
John Linville - Wireless subsystem maintainer
Stephen Tweedie - Ext3 filesystem developer
Eric Sandeen - XFS, Ext4 filesystem developer
Josef Bacik - Btrfs filesystem developer
Rik Van Riel - VM developer
Ric Wheeler - Filesystem developer
Val Henson - Filesystem developer
Dave Jones - Fedora kernel maintainer
Kyle McMartin - Fedora kernel maintainer
Chuck Ebbert - Fedora kernel maintainer
Eric Paris - LSM/SELinux/Audit/Capabilities maintainer
Eugene Teo - Security Response
Kay Sievers - Hotplug

3、CentOS/RHEL对硬件的支持很好,主流硬件厂商早就将服务器拿过去测试,一般不存在硬件的兼容性问题。

而Debian就麻烦了,由于有版权上的考虑和代码纯洁性上的洁癖,一些硬件驱动和软件被删掉了,导致安装过程有问题。比如 Dell 服务器上,大量使用的网卡 BroadCom,就驱动不了,安装了以后,网络起不来。

4、大量商业软件,比如 Oracle ,都是针对 Redhat认证的,有大量的帮助文档和使用说明,有良好的技术支持。出了问题,也容易在网上找到类似的答案和经验。

5、CentOS 是RedHat的克隆版,如果需要可以随时平滑切换到 RedHat,从而享受RedHat的服务支持。要知道厂商的服务,是最后一道防火墙,如果你给一个大客户做方案,他们一般会倾向选用商业服务。万一出了什么问题,还有Redhat可以求助,或者有一个RedHat可以承担责任 :-)

6、如果你是一个工程师,熟悉了 CentOS/RedHat ,找工作更加容易。如果你是一个企业老板,相对也容易招聘到熟悉CentOS/RedHat的工程师。RHCE的培训,也相对较完善,认同程度高。

7、CentOS/RHEL 的批量安装更加方便

在机房,使用kickstart + PXE安装,给客户,使用定制的kickstart光盘,一键安装,一般在5分钟左右就可以安装完。

上述3,4,5,6几点中,都说明CentOS/RHEL相对于其他Linux操作系统,有相对完整的生态环境,很多公司在CentOS/RHEL投入了大量资源,积累了大量经验,绑定了自己的利益,这个是CentOS/RHEL得以长期良好发展的保证。

=============
补充对评论的一些回复

1. 所谓的“centos稳定性非常差”,不知道你指的是什么?能否举一些CentOS不稳定的例子?至少我们用了这么多年CentOS,稳定性上可以说是坚如磐石的。如果是你说的由于yum升级造成的混乱,那只能说明你对centos不熟悉。
2、RHEL/centos 对于一些新的软件的支持,采用 SCL的方式支持,比如ruby193,python27, python 33, PHP 54, nodejs 0.10, mariadb55, postgresql 9.2
AdditionalResources/Repositories/SCL
3、debian/ubuntu 同样存在版本稳定和程序太老的矛盾,比如他们的LTS版本,一般是两年多更新一次。squeeze是2011年2月发布,wheezy是2013年5月发布,如果你在2013年4月使用Debian,你会发觉好多软件太老,比如:
内核:2.6.32,和Centos 6 一样的
glibc 还是使用的2.11.2
mysql使用的5.1.49
openjdk使用的是 6
php使用的是 5.3.3
python使用的是2.6.6

下一个版本的Deiban,至少要到 2015年下半年才能发布,而RHEL7/CentOS7的正式版发布在即,里面用到的不少软件,都比wheezy的要新。按照你的逻辑,在接下来较长的时间里,是否CentOS比起Debian更加前卫?

再看看Rio的回复:“之前我用了很长一段时间的 Debian,但它的更新实在太慢了(好几年啊有木有!)”,呵呵

4、“debian的支持时间也非常长期”,这个最近确实有了改善,Debian刚刚宣布对 Debian 6.0 有了5年的LTS长期支持。可以这么说,Debian也看到了LTS的重要性,向CentOS学习了一把。
Debian -- News -- Long term support for Debian 6.0 Announced

但Debian做得还不够,因为Debian的LTS在后续版本,比如 Debian 7 (wheezy), Debian 8 (jessie) 里的支持政策还不明朗:
Debian -- Security Information -- DSA-2907-1

Debian的LTS支持,也不是Debian 官方安全团队维护的,而是由其他志愿者维护的,工作效率和质量是否有保证还不知道。相比RHEL明晰的发展策略和安全更新策略,有10年的安全补丁保证,还有不少差距。

5、“debian这个系列的软件包也比较新,debian和他儿子ubuntu很多软件包维护是共享的,更新速度非常快”,不知道你使用的是稳定版还是测试版。稳定版里面你是如何看到软件包“更新速度非常快”的。

C. 小程序开发需要多少钱用的是什么语言

目前市场上小程序制作主要有三种方式,三种方式的价钱也是不一样的,具体详情如下:
1、小程序模板套用
2、第三方平台拖拽制作
3、小程序按要求定制
第1种,模板小程序-价格比较低,一般几百到几千不等,好在操作简单,方便,能够快速上线;不好在于不好升级换代,按年收费,而且很多没有相关小程序版权。
第2种,小程序第三方平台拖拽制作-价格中等,一般几百到几千不等。好在于方便,能够快速上线;可以选择小程序的样式很多,可以根据自己想法去设计自己小程序,缺点在于按年收费,没有版权。
第3种,小程序按要求定制-价格比较高,一般5万到十几万.好在功能是按照你的要求定制开发的,相关小程序开发的知识产权。缺点在于价格高,定制版的基本费用在上万元到十几万不等,钱少勿入。
通常来讲,一般常用的小程序并不贵,价格大概在2000-8000之间,多则上万,特别的简单的小程序可能几百元就搞定啦,而功能复杂的小程序,一般需要开发定制,由于人工成本比较高,价格一般都是几万起步。
至于小程序开发用什么语言,简单来讲,小程序相当于是用HTML5+CSS+JavaScript和后端PHP/Java/nodejs等来开发,虽然wxml中可以插入wxs代码,但这其实也是JavaScript。小程序是基于浏览器内核的(但又有别于浏览器),所以程序代码也肯定只能是基于浏览器的脚本语言的,也就是JavaScript。
如果你说的是后台程序,这就没什么限制了,喜欢用什么就用什么,只要能接收到小程序的连接请求并按小程序要求的格式返回数据即可。当然微信官方是推荐用nodejs和php的。不过这跟小程序本身就没有直接关系了,因为开发普通APP的后台程序也是完全一样的。

D. 网易云怎么设置不听vip专享音乐

1、安装nodejs工具,用于启动后面的http代理脚本,下载网址:http://nodejs.cn/download/

5、对于手机端网易云音乐,解锁操作也是类似,不过手机端需要的操作更多比较麻烦,如果你有云服务器就好办了,直接把代理工具部署到你的服务器上,这样电脑和手机都能同时使用。

E. 前端开发都需要哪些工具

每个前端开发人员都有自己喜欢的开发工具,用这些工具能让编码更容易并且“令人愉快”。分享一些我认为真的很棒的很棒的Web开发工具!

1.Glitch

https://glitch.com

好的,这不仅仅是一个工具,还是一个非常棒的编码平台以及一个很棒的技术社区。我可以在内置代码编辑器的帮助下托管我的项目。支持多种语言,但最适合NodeJS。

2.Shadows

https://brumm.af/shadows

这个网站提供生成平滑阴影的CSS代码,可以创建平滑的边框阴影。它看起来真的很流畅,令人满意。

3.Coolors

https://coolors.co

这是一款非常好的在线工具,可以为项目生成匹配的颜色方案。如果不喜欢当前的方案,按下空格键,它会重新生成一个配色方案,直到你满意~

4. Blobmaker

https://blobmaker.app

Blobmaker可帮助你随机生成各种尺寸,不同颜色和形状的SVG Blob。你可以用作背景或创建看起来很酷的动画。

5.Getwavs

https://getwaves.io

与Blobmaker相似,Get Waves能够随机生成不同颜色和不同数量的波浪。用作网页的页脚或页眉看起来不错。

6. Undraw.co

https://undraw.co

开放源代码项目的SVG插图集,可用来做登录页面,404页面等,当然普通页面也能用!上面的插图可以不带归属地版权的使用,无需支付任何费用。

7. Marcdown

https://liyasthomas.github.io/marcdown

由Liyas Thomas提供的在线实时的Markdown网页编辑器,它可预览Markdown代码,将其发布到GitHub上。它提供一个非常漂亮的暗黑模式。还可脱机工作,这使得它显得更出色。

8.postwoman

https://postwoman.io

这是Liyas Thomas构建的另一个工具。Postwoman是一个API请求构建工作。开发者可以不使用代理来测试 API。这是一个渐进式Web应用程序,可以保存到桌面来用。它是轻量级的产品,基本上可以是Postman的在线替代品。

9. Screely.com

https://screely.com

它可以帮助你创建超级漂亮的网站截图模型。如果你不是MacBook用户,但需要更好的网站图片作为自述文件,它非常适合我们。

10. CSS网格生成器

https://cssgrid-generator.netlify.com/

这是Sarah Drasner的创建的优秀网站,它使用CSS创建动态网格布局。

以上是10款web前端开发工具分享,希望对你有帮助。

F. 微信公众平台消息接口的Node.js实现

安装
如果你使用node进行开发,那么安装很简单:

npm install weixin-api
表达
如果你需要使用express开发微信公众平台应用,那么首先安装express

npm install express -g
创建应用

express myweixin
cd myweixin修改package.json,添加对weixin-api的依赖

{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.1.1",
"jade": "*",
"xml2js" : "0.2.6",
"weixin-api" : ">=0.1.6"
}
}
然后执行

npm install
特征
token校验
消息推送:文本消息,图片消息,地理位置消息,链接消息,事件推送
消息回复:文本消息,音乐消息,图文消息
链接
微信API For Node.js
例子
var express = require('express'),
weixin = require('weixin-api'),
app = express();

// 解析器
app.use(express.bodyParser());
//app.use(xmlBodyParser);

// 接入验证
app.get('/', function(req, res) {

// 签名成功
if (weixin.checkSignature(req)) {
res.send(200, req.query.echostr);
} else {
res.send(200, 'fail');
}
});

// config
weixin.token = '你的token';

// 监听文本消息
weixin.textMsg(function(msg) {
console.log("textMsg received");
console.log(JSON.stringify(msg));

var resMsg = {};

switch (msg.content) {
case "文本" :
// 返回文本消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "text",
content : "这是文本回复",
funcFlag : 0
};
break;

case "音乐" :
// 返回音乐消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "music",
title : "音乐标题",
description : "音乐描述",
musicUrl : "音乐url",
HQMusicUrl : "高质量音乐url",
funcFlag : 0
};
break;

case "图文" :

var articles = [];
articles[0] = {
title : "PHP依赖管理工具Composer入门",
description : "PHP依赖管理工具Composer入门",
picUrl : "http://weifeng.net/images/tech/composer.png",
url : "http://weifeng.net/manage-php-dependency-with-composer.html"
};

articles[1] = {
title : "八月西湖",
description : "八月西湖",
picUrl : "http://weifeng.net/images/poem/bayuexihu.jpg",
url : "http://weifeng.net/bayuexihu.html"
};

articles[2] = {
title : "「翻译」Redis协议",
description : "「翻译」Redis协议",
picUrl : "http://weifeng.net/images/tech/redis.png",
url : "http://weifeng.net/redis-protocol.html"
};

// 返回图文消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "news",
articles : articles,
funcFlag : 0
}
}

weixin.sendMsg(resMsg);
});

// 监听图片消息
weixin.imageMsg(function(msg) {
console.log("imageMsg received");
console.log(JSON.stringify(msg));
});

// 监听位置消息
weixin.locationMsg(function(msg) {
console.log("locationMsg received");
console.log(JSON.stringify(msg));
});

// 监听链接消息
weixin.urlMsg(function(msg) {
console.log("urlMsg received");
console.log(JSON.stringify(msg));
});

// 监听事件消息
weixin.eventMsg(function(msg) {
console.log("eventMsg received");
console.log(JSON.stringify(msg));
});

// Start
app.post('/', function(req, res) {

// loop
weixin.loop(req, res);

});

app.listen(3000);
许可证
麻省理工学院许可证(麻省理工学院)版权所有(C)2012 Jeremy Wei

特此授权,免费的,任何人获得本软件和相关文档文件(“软件”),交易软件没有限制,包括无限制的使用的权利,复制,修改,合并,出版,分发,许可,和/或销售的软件副本,并允许个人软件提供这样做,符合下列条件:上述版权声明和本许可通知应包含在软件的所有副本或实质性部分中。

本软件提供的“原样”,没有任何形式的保证,明示或暗示,包括但不限于适销性的保证,为特定的目的和非侵权性的健身。在任何情况下,作者或版权持有人应承担任何索赔,损害赔偿或其他责任,无论是在合同,侵权或以其他方式产生的,出于或与软件或使用或其他交易软件的行动。

G. grunt 需要为每个应用都安装吗

Grunt.js是什么? Grunt.js是一个Javascript Task Runner(Javascript任务运行器),其基于NodeJS,可用于自动化构建、测试、生成文档的项目管理工具。 Grunt.js并不是仅仅是构建工具,实际上他只是任务运行器,管理每个子任务的自动化运行,我们还能使用他做更多东西。 为什么使用Grunt.js? 简单的说:为了自动化。 对于前端项目,例如: •为了明确模块分工,我们可能会将Javascript代码拆成很小很小的一个个js文件,但是我们知道,在最终页面上,我们知道过多的js文件会产生过多的Http Request,这不利于页面优化。所以我们可能希望可以合并这些js文件的工具。 •为了用户端请求的文件尽量小,我们希望我们的HTML、Javascript等文件能进行压缩。 •我们可能需要对源代码进行一些单元测试和回归测试。 •我们可能希望有工具能够通过源代码备注自动生成文档,免得手动再写文档。 •…… 很明显,这一切都有各种各样的小工具能帮我们做到,但是我们希望最好能输入一个命令,打开一个程序,或者干脆每次修改文件保存后自动进行这一切事情。 以前我们可能使用NodeJS自己写一个build程序,但是现在Grunt.js能够提供我们需要的一切。 安装Grunt.js Grunt.js 0.4之后,其不再使用全局方式安装整个Grunt.js,而是在全局安装Grunt.js Client,然后在当前项目中安装Grunt,来避免未来不同项目对Grunt不同版本的依赖关系。 如果安装了之前的版本,可以使用npm的命令来删除掉原来的Grunt.js。 npm uninstall -g grunt 然后安装Grunt.js Client: npm install -g grunt-cli package.json package.json是项目的配置文件,有一些项目的依赖信息,以及作者、版本等信息。我们先写一个简单的package.json。 复制代码 代码如下: { "name": "my-project", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.1" } } name属性,表示该项的名字。 version属性,则是该项目的版本号。 devDependencies属性,则包含该项目的依赖,目前我们的依赖只有grunt,以及版本为0.4.1。 在终端大概包含该package.json的目录,输入命令: npm install 我们会发现,该目录此时多了一个node_moles文件夹,里面有个grunt文件夹,这个就是我们安装在项目的Grunt.js。 用Grunt.js进行压缩js代码 grunt-contrib-uglify是Grunt.js的一个任务模块,其基于著名的js压缩工具uglify,进行js压缩任务。 首先我们在项目依赖加上grunt-contrib-uglify,package.json如下: 复制代码 代码如下: { "name": "my-project", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-uglify": "~0.2.0" } } 再使用: npm install 我们就安装了grunt-contrib-uglify了。 写Gruntfile.js 复制代码 代码如下: mole.exports = function(grunt) { // 给grunt添加些设置 grunt.initConfig({ uglify: { options: { banner: '/*! 版权所有,这里乱写 */\n' }, build: { src: 'src/core.js', //要压缩的源文件,我们也可以用*表示通配,比如'src/*.js' dest: 'dst/core.js' //压缩后输出的位置 } } }); // 载入 "uglify" 插件任务 grunt.loadNpmTasks('grunt-contrib-uglify'); // 定义默认需要执行的任务 grunt.registerTask('default', ['uglify']); };

H. Node.js中Process.nextTick和setImmediate的区别

一、Webstrom使用node.js IDE的问题

在区别这两个函数之前来说一下Webstrom使用node.js IDE的问题,在配置Node.js的IDE了,但setImmediate()、require等这些node.js中内置的函数时并不会有提示

二、两者的区别

1.在理解两者的区别之前要说一下轮询

前面博客也有记录,nodejs中是事件驱动的,有一个循环线程一直从事件队列中取任务执行或者I/O的操作转给后台线程池来操作,把这个循环线程的每次执行的过程算是一次轮询.

2.setImmediate()的使用

即时计时器立即执行工作,它是在事件轮询之后执行,为了防止轮询阻塞,每次只会调用一个。

3.Process.nextTick()的使用

它和setImmediate()执行的顺序不一样,它是在事件轮询之前执行,为了防止I/O饥饿,所以有一个默认process.maxTickDepth=1000来限制事件队列的每次循环可执行的nextTick()事件的数目。

4.总结

在网上网络的关于它们的总结:

nextTick()的回调函数执行的优先级要高于setImmediate();

process.nextTick()属于idle观察者,setImmediate()属于check观察者.在每一轮循环检查中,idle观察者先于I/O观察者,I/O观察者先于check观察者.

在具体实现上,process.nextTick()的回调函数保存在一个数组中,
setImmediate()的结果则是保存在链表中.
在行为上,process.nextTick()在每轮循环中会将数组中的回调函数全部执行完.
而setImmediate()在每轮循环中执行链表中的一个回调函数.

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。

I. 求一个JAVAEE 增删改查的自动生成代码!

你好,我这里知道一个比较完善的框架:jeesite

你可以去这里下载,然后里面有详细的文档说明。

网页链接

免费的,请勿用于商业用途,关于版权什么的我不清楚,可以联系作者。

希望能够帮到你。

J. react-native 版权号怎么打

首先安装了nodejs 4.乏订催寡诎干挫吮旦经1 版本
然后 安装了 npm install -g react-native-cli 模块
安装 android sdk 并且配置android 环境变量
安装gradle 环境
进入 这个博客 里边有 react-native for android 项目,下来,然后执行 npm install 先安装 react 依赖模块包
打开两个 命令窗口 1. 一个 执行react-native start ,另一个执行react-native run-android 就可以了

阅读全文

与nodejs版权相关的资料

热点内容
星光创造营后勤在哪 浏览:581
北京办理知识产权 浏览:177
交通银行信用卡有效期是几年 浏览:913
公司协议股权转让 浏览:531
啥叫担保物权 浏览:60
马鞍山到徐州的火车 浏览:703
羊年限定金克丝多少钱 浏览:573
公共基本卫生服务结核项目试题 浏览:896
宝鸡市工商局电话号码 浏览:81
基本公共卫生服务督导工作方案 浏览:454
信息化成果总结 浏览:948
债务纠纷律师费必须提供发票吗 浏览:876
手机我的世界创造模式怎么去天堂 浏览:716
专利代理人个人总结 浏览:312
工商局党建工作述职报告 浏览:685
创造力阅读理解答案 浏览:866
金华质监局和工商局合并 浏览:334
卫生院公共卫生服务考核结果 浏览:693
专利权的内容有哪几项 浏览:750
学校矛盾纠纷排查表 浏览:294