位置:首页 » 技术 » NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

日期:2016-10-22 阅读:245num
Advertisement

OnceIO是OnceDoc企业内容管理系统的底层Web框架,它可以实现模板文件、静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只在第一次压缩),拥有非常好的性能,为您节约服务器成本。它可以让你对Web进行分布式存储,即一个扩展包里即可包含前端、后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展。这里是介绍如何使用OnceIO的一系列文章。

OnceIO 是一个自身功能极简,完全由路由、中间件和Handler构成的 web 开发框架:一个 OnceIO 应用本质上就是在调用各种中间件和Handler。

中间件是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)),并将应用的请求-响应循环传向下一个中间件。

一个应用的请求-响应循环如下图所示,由请求对象、响应对象、中间件和 handler 构成:

NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

Handler 针对请求发出响应,循环终结于此,一个请求-响应循环只会由一个 handler处理;但每个请求在到达 handler 之前会依次经过许多中间件,如Session、Securty(登录认证)、表单解析等都是典型的中间件,NoceJS中的MiddlerWare与Java中的Filter和.NET中的HttpModule概念类似。一个请求-响应循环也可以不经过中间件,比如说静态CSS/JS文件就没有执行Session、认证中间件的必要。

中间件的功能包括:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 终结请求-响应循环。
  • 调用堆栈中的下一个中间件。

如果当前中间件没有终结请求-响应循环,则必须调用 req.filter.next() 将控制权交给下一个中间件,否则请求就会挂起。

下面我们将以 Lesson 1 中简单的 'Hello World' 应用为例,为其增加两个中间件:能在终端输出一条简单消息的 myLogger 和能在网页上显示 HTTP 请求的时间戳的 requestTime.

var onceio = require('../onceio/onceio')
var app = onceio()

app.get('/', function(req, res) {
  res.end('Hello World!')
})

中间件函数 MYLOGGER

myLogger 函数会在 request 经过它时在 console 界面输出“LOGGED”。myLogger 函数的代码如下:

var myLogger = function(req, res) {
  console.log('LOGGED')
  req.filter.next()
}

把 myLogger 添加到应用中:

var onceio = require('../onceio/onceio')
var app = onceio()

var myLogger = function(req, res) {
  console.log('LOGGED')
  req.filter.next()
}

app.use(myLogger)

app.get('/', function(req, res) {
  res.end('Hello World!')
})

每当应用收到请求时,它都会在终端输出“LOGGED”:

NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

中间件的加载顺序很重要:中间件必须要被首先加载并且被首先执行,否则在请求到达中间件之前请求-响应循环就被终止了,中间件将不被执行。

中间件函数 REQUESTTIME

接下来,我们创建一个叫做 requestTime 的中间件函数:

var requestTime = function(req, res) {
  req.requestTime = Date.now()
  req.filter.next()
}

把 requestTime 添加到应用中:

var onceio = require('../onceio/onceio')
var app = onceio()

var requestTime = function(req, res) {
  req.requestTime = Date.now()
  req.filter.next()
}

app.use(requestTime)

app.get('/', function(req, res) {
  var responseText = 'Hello World!<br>';
  responseText += '<small>Requested at: ' + req.requestTime + '</small>';
  res.send(responseText);
})

每当应用收到请求时,它都会在浏览器显示请求的时间戳:

NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

我们在这里只演示了两个简单的中间件,事实上中间件的种类和功能非常多样,例如,app.use() 函数可以有多达三个参数:

app.use('/file', function(req, res) {
   var user = req.session.get('user')
   if (!user || !user.username) {
     res.end('No permission')
     return
   }

   res.cache(0)
   req.filter.next()

}, { session: true })

其中第一个参数指定所有以“/file”开头的 URL(发起的请求)都会经过这个中间件;第三个参数指定这个中间件需要session支持。因为onceio的session对象可能是存放在数据库中的,从数据库获取session会有一定的性能损失,所以在设计时您可根据情况,比如说在用户界面、管理后台添加session解析支持。

中间件能访问请求对象、响应对象、堆栈中下一个中间件和整个 OnceIO API,因此它的用法拥有无限的可能性。

相关文章
  • NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件 NODEJS中的MIDDLEWARE是什么?在ONCEIO中创建和使用中间件

    OnceIO是OnceDoc企业内容管理系统的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只在第一次压缩),拥有非常好的性能,为您节约服务器成本.它可以让你对Web进行分布式存储,即一个扩展包里即可包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.这里是介绍如何使用OnceIO的一系列文章. OnceIO 是一个自身功能极简,完全由路由.中间件和Handler构成的 we

  • 如何在代码中直接获得某个对象在内存中的大小? JavaScript 的 ~

    如何在代码( JS in Node )中直接获得某个对象在内存中的大小? JavaScript 中的对象是否也如 Python 一样,每个变量仅存对象的引用值,多个变量可以共用一个对象? --cut-- ttph1oc在2016-05-09 06:28:48回答到: 1. npmjs.com/package/object-sizeof 2. 是 haozhang在2016-05-09 06:28:48回答到: 2.有哪个面向对象的语言不是这么干的...

  • 印象笔记中的邮件怎么保存到邮箱中? 印象笔记中的邮件怎么保存到邮箱中?

    印象笔记中的邮件怎么保存到邮箱中?不管我们是上班还是上学,电子邮件确实都是绕不过去的一个交流工具,你可以将邮件转到私有邮箱地址,将邮件保存到印象笔记. 1.保存邮件只需要一键发送到一个特殊的地址 印象笔记中的邮件怎么保存到邮箱中?无论是写邮件.还是收到的邮件都可以抄送或者转发到我们的印象笔记私有邮箱:每一个用户都有一个属于自己的独一无二的邮箱地址,而转发或者抄送到这个独一无二的地址之后,这封邮件就会自动出现在我们的默认笔记本中. 2.如何找到自己的印象笔记私有邮箱地址? (1)Mac 客户端:

  • 中望CAD教程第二章:中望CAD设置

    中望CAD教程第二章:中望CAD设置 中望CAD教程之使用缺省设置 当用户单击图2-1所示的启动对话框中的 按钮时,中望CAD 2010将让用户使用缺省的绘图环境开始绘制新图,如图2-4所示.该对话框中的默认设置框中有两个单选框:英制(英尺和英寸),公制(毫米).用户选择其中一项后,单击确定按钮,即可开始绘制新图形.更多>> 中望CAD教程之使用样板图向导 样板图是指包含一定绘图环境,但未绘任何图形的实体文件.使用样板图的特点是不仅可以使用它所定义的绘图环境,而且可以使用它所包含的图样数据,以

  • Java中的Timer和TimerTask在Android中的用法

    在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask. Timer是一个普通的类,其中有几个重要的方法:而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作. schedule方法有三个参数 第一个参数就是TimerTask类型的对象

  • php中使用gd库实现下载网页中所有图片 php中使用gd库实现下载网页中所有图片

    这篇文章主要介绍了php中使用gd库实现下载网页中所有图片,本文直接给出实现代码,需要的朋友可以参考下 在前期的php教程就讲了php gd库可以实现远程图片的下载,但是那只是下载了一张图片,原理是一样的,要想下载一个网页的所有图片只要使用正则表达式进行判断,找出所有的图片url就可以进行循环下载了,我特地参照网络资源编写了gd库图片下载类! php代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

  • PHP中把错误日志保存在系统日志中 PHP中把错误日志保存在系统日志中

    这篇文章主要介绍了PHP中把错误日志保存在系统日志中(Windows系统),本文讲解了设置方法和查看方法,需要的朋友可以参考下 [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php //关闭错误显示 ini_set('display_errors',

  • 中移动改革飞信运营模式 华为中软国际现身竞标

    过去的6年中,中国移动旗下的移动互联网业务飞信取得了让业界羡慕的成绩,与中移动合作的飞信业务独家运营方神州泰岳就曾经赚得盆满钵溢.但随着更多即时通讯移动应用的快速崛起,飞信正失去昔日光芒.现实的竞争压力之下,中移动不得不操刀改革飞信的旧运营模式,引入新的合作伙伴和市场化机制. 新竞标者华为.中软国际 不紧不慢的调整是央字号国企试图扭转被动局面的一贯做法,中移动为应对来自互联网OTT业务的冲击开始计划重构飞信,启动新的飞信服务商招标便是其计划的第一步.根据中移动广东公司发布的最新招标公告显示,中移

  • Win7系统中让垃圾邮件不再进入Outlook中的设置技巧 Win7系统中让垃圾邮件不再进入Outlook中的设置技巧

    Outlook 是 Microsoft 的主打邮件传输和协作客户端产品.它是一种集成到Microsoft Office和ExchangeServer中的独立应用程序.Outlook 还提供与Internet Explorer 5.5的交互和集成.电子邮件.日历和联系人管理等功能的完全集成使得 Outlook 成为许多商业用户眼中完美的客户端. Outlook 可帮助您查找和组织信息,以便您可以无缝地使用 Office 应用程序.这有助于您更有效地交流和共享信息.下面小编给大家介绍Win7系统 (

  • 开机出现服务器正在运行中由于另一个程序正在运行中怎么办? 开机出现服务器正在运行中由于另一个程序正在运行中怎么办?

    为什么开机后就出现"服务器正在运行中由于另一个程序正在运行中,此操作无法完成.请选择"切换到"来激活正在运行中的程序,并更正问题",需要点击多次"切换到"才能使这个对话框消失,电脑也不能进入正常的运行,奇怪了,今天小编就自己的亲身经历来交大家如何解决. 1.crtl+alt+del调用windows任务管理器 2.然后,文件-新建任务运行 3.输入msconfig.msc 4.然后禁用里面的所有开机启动项 5.接着重启一下电脑,启动起来时候就不会

  • 记住, 生活中没有过不去的难关, 生命中也没有离不开的人 记住, 生活中没有过不去的难关, 生命中也没有离不开的人

    你忙,我可以理解-- 你和别人聊天,我也理解- 你聊完了删除所有信息,我依然可以理解-- 可是,万一,有一天我在你的世界消失了--- 那么请你也理解-- 渐渐明白了,太在乎一个人往往会伤害自己: 渐渐明白了,很多爱情是可遇而不可求的: 渐渐明白了,很多东西只能拥有一次,放手了也就意味着失去: 渐渐明白了,最在乎的那个人,往往是最容易让你流泪的: 渐渐明白了,真心对一个人是不需要回报的: 一件事你期望的高了, 你就输了: 一份情你付出的多了, 你就累了: 一个人你等的久了, 你就痛了. 记住, 生

  • 在win7中整理磁盘碎片后文件夹中出现乱码怎么办? 在win7中整理磁盘碎片后文件夹中出现乱码怎么办?

    其实很多朋友都会在电脑操作中涉及到整理磁盘碎片,因为咱们操作电脑的时间越久,那么磁盘中出现的碎片也就相应的越多,久而久之,便会造成磁盘运行变慢,因此,磁盘碎片整理是咱们定期定时需要做的事情,这也是win7旗舰版64位系统下载系统优化的一项重要工作.不过最近却有朋友在执行这项优化工作的时候发现了一个奇怪的现象,什么现象?该网友说,在win7旗舰版中整理磁盘碎片后文件夹中出现乱码,这样会导致磁盘中的很多文件夹都无法正常使用,那么出现这样的问题,我们要如何解决呢?下面,就让小编来详细的介绍一下吧! 1

  • 在DIV CSS的网页中,如果下载用于CSS样式中的背景图片?

    在DIV CSS的网页中,如果下载用于CSS样式中的背景图片?有些背景图片是PNG格式的.我试用过其它一些浏览器,但都只是下载页面中的图片,样式表中的背景图片下载不下来,到页面中直接下载另存为也不行.求助高手给于只招?谢谢了! 最佳答案 大多数显示的背景都可以通过右键-背景另存为保存下来,你存不下来可能有几点原因: 1.鼠标没有点对位置 2.代码结构影响,这就很多种情况了 如果就是存不下来,你可以保存他的样式表,或者查看样式表,结合源文件代码中class或者id引用的样式名,搜索到这个样式,看一

  • php中把session保存到MySQL数据库中示例

    下面这个例子是利用了php中的session_set_save_handler函数保存到数据库中,这个有点像小编写的购物车原理了,下面来看看这个例子,希望对各位有帮助. PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开销是很大的,然而session是要时时刻刻的使用的,大量的用户就要创建很多的session文件,这样对整个的服务器带来性能问题.

  • php中fgetcsv函数在php5.2.8 中的数据不完整

    本文章来给各位同学介绍一下关于php中fgetcsv函数在php5.2.8 中的数据不完整问题解决办法,希望此文章对各位朋友会有所帮助. 问题解析出来的数据不完整,有为空的字段 网上查了下说是在php5.2.8 中存在bug 解决办法是使用自定义函数 代码如下 复制代码 function __fgetcsv(& $handle, $length = null, $d = ',', $e = '"') { $d = preg_quote($d); $e = preg_quote($e);

  • linux中apache和mysqld加入service系统服务中

    本文章来给各位同学详细介绍linux中apache和mysqld加入service系统服务中具体操作命令,有需要了解的同学不防参考一下 先我们把mysql增加到linux的系统服务中去 mysql: 代码如下 复制代码 cd /usr/local/mysql/share/mysql cp mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld restart 现在你就可以使

  • WPF中使用定时器 DispatcherTimer 干TCP连接中的心跳 HeartBeat

    WPF中使用定时器 DispatcherTimer 做TCP连接中的心跳 HeartBeat 开发过程中经常遇到定时触发的需求,如:TCP/IP连接中,使用心跳包保持连接或检测连接是否已经中断. WPF中有多种定时器: 1.using System.Windows.Threading; 代码如下: using System.Windows.Threading; public partial class MainWindow : Window { DispatcherTimer timerHear

  • informix存储过程中调用shell的疑问,求解中,先谢了解决办法

    informix存储过程中调用shell的疑问,求解中,先谢了 各位高手,我写了一个informix存储过程,过程中调用一个shell,但是调用时总报错: " System command cannot be executed. 更多例外 ... ISAM error: no primary key " 本人的过程如下: create procedure proc_Interface_k81_test() returning int, int, varchar( 254 ); defi

  • 为什么SQL中的这段程序在VFP中执行不了解决办法 为什么SQL中的这段程序在VFP中执行不了解决办法

    为什么SQL中的这段程序在VFP中执行不了 --cut-- 本帖最后由 dkfdtf 于 2014-05-27 16:07:22 编辑 跟你在查询分析器中运行的命令格式一样就行了 sqlexec(thisform.connhandle, "exec sf_图书借阅") --cut-- 用这个追踪一下嘛

  • Android逆向之旅-Android中怎么获取在非Root设备中获取应用隐私数据 Android逆向之旅-Android中怎么获取在非Root设备中获取应用隐私数据

    Android逆向之旅---Android中如何获取在非Root设备中获取应用隐私数据 一.前言 今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但是没想到这个属性会直接导致隐私数据的丢失.下面就来看一下这个属性的影响到底有多大.他的作用是什么? 二.Android中的allowBackup属性 1.allowBackup安全风险描述 Android API

最新文章
  • 吉列生蚝的做法

    配料: 中等生蚝600克,鸡蛋1个,面粉.面包糠各2汤匙,酒.盐.粟粉各1茶匙,生菜1棵,柠檬1个,柠檬片1片,樱桃2片.汁料:蚝油.番茄酱各1汤匙,生抽1/2汤匙,柠檬汁1茶匙. 吉列生蚝的特色:香脆可口,颜色悦目. 如何做吉列生蚝: (1)生蚝洗净去壳,用盐及粟粉拌匀,稍腌,再冲洗干净,放滚水中焯至变色,即捞出沥干. (2)鸡蛋打散,下酒再搅拌. (3)生蚝依次蘸上淀粉.鸡蛋.面包糠,放入中温滚油中炸至金黄色,沥干油上碟. (4)生菜叶撕开.洗净.修剪成供食大小,与柠檬块拌食.汁料调匀蘸食.

  • 郁钧剑:歌唱改变命运 郁钧剑:歌唱改变命运

    郁钧剑:歌唱改变命运 从艺40年,感受生与死,看淡名和利. "我是郁钧剑."坐在北京香格里拉酒店大堂,这位曾凭借<什么也不说>.<说句心里话>.<当兵干什么>.<家和万事兴>等一系列脍炙人口的歌曲红遍大江南北的军旅歌手,用最平常的5个字介绍着自己. "上世纪五六十年代出生的人,对我是比较熟悉的;七八十年代出生的人,对我就有点陌生了;现在的'90后',估计很多都不知道郁钧剑是谁了."郁钧剑毫不避讳地说.不过,饭店一位&q

  • 《上古卷轴OL》九宫格解谜方法 《上古卷轴OL》九宫格解谜方法

    这个任务就是亚龙人要你帮忙开蛋逃出去 这个任务的地点在这里 然后地上有蛋 要试验很久 如果你在这里卡了很久 就去和女npc说话 和石头说话 可以重置 接着就看到这样的视角 接着先点中间的 然后4个角的 每个角一下 顺时针 逆时针都可以

  • 果中之王

    老爸常说:"水果中营养要算苹果最全."这样自然而然地苹果成了我家最熟悉的水果,当然也是我最喜欢的水果之一. 众所周知,苹果姑娘长得very漂亮:脑袋圆圆的,还扎了一根小辫子.可苹果姑娘就是嫌自己长得不够漂亮,脸红红的,总躲在树叶间,遮遮掩掩. 苹果也是一种颜色不一,品种多样的水果.不信?你瞧!有的红得发黑,有的黄中带红,还有的呈现出淡红色的脸蛋······ 一种小巧玲珑的淡红色苹果是我的最爱!这是一种酸中带甜的,脆脆的苹果,并不像有些苹果,又甜又硬.咬一口,酸甜的果汁就会在你的嘴里溢开

  • 一张图看清目前物联网领域都有哪些玩家 一张图看清目前物联网领域都有哪些玩家

    2016 年来临之前,全世界估计会有 60 亿物体已经接入网络.没错,说的就是并非新鲜概念的"物联网".你可以从字面上揣测出这个词的意思,即通过 Internet 相连的物体,换个玄乎点的说法,就是"能够学习和适应用户行为的物体".各个领域的各个公司都想来分这个未来的大蛋糕,下图罗列了当前这块大蛋糕的竞争者,肯定还会不断有新公司加入,从下向上分别是给淘金者卖水的项目和公司.垂直领域的公司.水平领域的公司. 给淘金者卖水的项目和公司 其实物联网这个概念并不新(1999

  • Ubuntu 中sendmail 的装配、配置与发送邮件的具体实现

    Ubuntu 中sendmail 的安装.配置与发送邮件的具体实现 一.安装 ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmail先要安装两个包. 必需安装的两个包: sudo apt-get install sendmail sudo apt-get install sendmail-cf 下面几个包是可选的: squirrelmail //提供webmail spamassassin //提供邮件过滤 mailman //提供邮件列表支持 dovecot /

  • 使用Mahout筹建推荐系统之入门篇4-Mahout实战 使用Mahout筹建推荐系统之入门篇4-Mahout实战

    使用Mahout搭建推荐系统之入门篇4-Mahout实战 目录[-] 一.基本内容 二.运行环境 三.程序运行 3.1 调整N值和Threshold值对推荐结果的影响: 3.2. 针对DataModel做一些数据分析, 类似于博文2, 判断item和user数量, value范围, 方差等. 3.3 选择DataModel, 并计算内存使用情况 3.4. 选择相似性矩阵和调参 3.5 slope-one 四.总结 五.Similarity和Algorithm相关总结 六.参考资料 用意: 结合上

  • Ubuntu时间错乱漏洞仍未修复 不知道密码可获root权限 Ubuntu时间错乱漏洞仍未修复 不知道密码可获root权限

    Ubuntu(乌班图)是世界上最流行的Linux发行版本之一,其通用Unix组件中存在一个安全漏洞.然而距离官方发布相关补丁已经一年多了,该漏洞还是未能得到修复. Unix系统中的"Sudo"是"Super do"的通用简称.Sudo应用属于Unix系统的常见组件,几十年来一直是Unix系统的一部分.该应用使得用户可以像拥有root权限时那样进行操作,而不需要用户以管理员身份登录.这建立了一种比较安全的环境. 然而该漏洞可以使黑客在不知道密码的情况下使用已经登录的帐

  • [Cocos2D-X ]初窥门径(8)判断精灵点击 [Cocos2D-X ]初窥门径(8)判断精灵点击

    在场景中添加几个精灵 [cpp] mSprite1=CCSprite::create("Sprite.png"); mSprite1->setPosition(ccp(150,mSize.height/2)); this->addChild(mSprite1); mSprite2=CCSprite::create("Sprite.png"); mSprite2->setPosition(ccp(300,mSize.height/2)); this-

  • JAVA 如何产生一个范围随机数

    JAVA 怎么产生一个范围随机数 怎么产生 a-z && A-Z 的随机字符? ------解决方案-------------------- public static String nextString() { String str = new String(); Random rand = new Random(); switch (rand.nextInt(2)) { case 0: str = String.valueOf((char)('A' + rand.nextInt(26)

热门推荐
  • 曝光三角简易图表 曝光三角简易图表 这是一个非常清楚而简单的图表,就可以让大家了解到相机最最基础的操作. 很多人"学影相"是学甚么呢?由于现在的数码相机太方便了,Auto 模式都足以应付不少日常场合,所以很多人都对此不甚了了.但如果想要拍出心目中的作品,得到这样那样的效果,就无可避免还是要学习这个基础中的基础. 所谓曝光三角,就是指光圈.快门及ISO,调整这三项就会影响照片的曝光值 (EV,即exposure value),所以要得到恰当的曝光就必须要懂得平衡这三角,例如想要提高照片的曝光程度,就要推高ISO.减慢快门或
  • 魅族携航嘉发布小智插线板 双11特惠49元 魅族携航嘉发布小智插线板 双11特惠49元 国内顶级电源制造商-航嘉集团,在双11来临之际,联手电商巨头阿里巴巴.知名手机厂商魅族科技共同推出Wi-Fi智能插座--小智插线板.这款智能排插,通过阿里小智云平台,接入阿里智能云服务,拥有远程控制和定时开关功能,将传统普通插座变成了一款智能家居产品. 目前,小智插线板已上架魅族官网在线商店.航嘉天猫旗舰店.原价98元,双11特惠49元. 拥有Wi-Fi遥控的小智插线板,让生活更智能. 小智可以定时启动,连接面包机.蒸蛋机.煮奶器,让你每天多睡一小时,再也不用饿着肚子出门啦.总惦记家里电源没有关
  • 《纽约时报》首推虚拟现实客户端“NYT VR” 《纽约时报》首推虚拟现实客户端“NYT VR” 虚拟现实技术一直是大家关注的热点,并且就在明年初将有三款重量级头盔上市,消费者将会看到大量第三方开发者推出的精彩的虚拟现实专门应用.而正在此时,<纽约时报>第一次推出虚拟现实新闻产品--"NYT VR"(VR为虚拟现实英文简写). 虚拟现实给科技行业带来了一个崭新的创新创意空间,这意味着新闻行业将进入"浸入式报道"的时代. <纽约时报>首推虚拟现实客户端"NYT VR" 早在今年初,联合国.联合国儿童基金会.VRSE以及三
  • 喝腊八粥的历史记载 喝腊八粥的历史记载 记载 我国古代天子国君,农历每年的十二月要用干物进行腊祭,敬献神灵.蜡祭后来流行到民间,其习俗至今还有所遗存,就是腊月初八,南方的人们要吃腊八饭,北方的人们要喝腊八粥. 从先秦起,腊八节都是用来祭祀祖先和神灵.祈求丰收和吉祥.中国喝腊八粥的风俗,在宋代已十分风行.每逢腊八这一天,不论是朝廷.官府.寺院还是黎民百姓家都要做腊八粥.到了清朝,喝腊八粥的风俗更盛.在宫廷,皇帝.皇后.皇子等都要向文武大臣.侍从宫女赐腊八粥,并向各个寺院发放米.果等供僧侣食用. 在民间,家家户户也要做腊八粥,祭祀祖先;同
  • itiwant:中国好产品“出海”已进入价值输出时代 itiwant:中国好产品“出海”已进入价值输出时代 "赚钱,是一件挺有尊严的事情."罗胖(罗振宇)是这么说的.但事实上,怎么赚钱,才跟尊严有关.在智能硬件创星工厂itiwant创始之初,就有人建议,抄国外的产品在中国卖,当时也确实有一大批企业选择了这种做法,趁国外与中国这个世界工厂还未打通的窗口期,钱还是有得赚的. "为什么非要是抄袭美国好产品到中国卖,我们偏要反着干." itiwant(我要一切)想要一切,这支在硅谷和深圳驻扎的跨境团队,既要碗里的五斗米,也要诗和远方.他们只干三件事,寻找中国顶尖的技术团队,升级产