`
muyu
  • 浏览: 223297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nodejs解决了在服务器端运行js的问题

阅读更多

吴浩介绍我看看《nodejs》,在我的VPS上配好后,发现它解决了一个问题:如何在PHP里模拟调用javascript环境。《NodeJS探索》写的幽默风趣,较为经典的话莫过于“这对于JS程序员来说,真是一个莫大的福音,因为你们再也不用看着那帮做后台的孙子的脸色干活了,可以翻身做后端了”。

 

拿采集爱漫画的程序举例子,http://imanhua.com/comic/120/list_50567.html?p=3,打开源代码,找到如下代码:

 

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{}))

 在netbeans里,换行、缩进之后,变成:

 

eval(function(p,a,c,k,e,d){
            e=function(c){
                    return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
            };
            if(!''.replace(/^/,String)){
                    while(c--)d[e(c)]=k[c]||e(c);
                    k=[function(e){return d[e]}];
                    e=function(){return'\\w+'};c=1;
            };
            while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
            return p;
	}('5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',
          29,
          29,
          '50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),
          0,{
              
          })
);

 定义一个匿名函数,同时传入参数,运行返回一个值。紧接着,返回值被eval函数接收,并运行。把上述代码抠出来,放到firefox的firebug控制台运行:

 

var s =	function(p,a,c,k,e,d){
		e=function(c){
			return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
		};
		if(!''.replace(/^/,String)){
			while(c--)d[e(c)]=k[c]||e(c);
			k=[function(e){return d[e]}];
			e=function(){return'\\w+'};c=1;};
			while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
			return p;
		}
		(
			'5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{}
		);
alert(s);

 可以看到,匿名函数返回值为:

 

var len=18;var pic=["/Files/Images/120/50567/imanhua_001_095646437.jpg","/Files/Images/120/50567/imanhua_002_095646453.png","/Files/Images/120/50567/imanhua_003_095646453.png","/Files/Images/120/50567/imanhua_004_095646468.png","/Files/Images/120/50567/imanhua_005_095646468.png","/Files/Images/120/50567/imanhua_006_095646484.png","/Files/Images/120/50567/imanhua_007_095646484.png","/Files/Images/120/50567/imanhua_008_095646500.png","/Files/Images/120/50567/imanhua_009_095646500.png","/Files/Images/120/50567/imanhua_010_095646500.png","/Files/Images/120/50567/imanhua_011_095646500.png","/Files/Images/120/50567/imanhua_012_095646515.png","/Files/Images/120/50567/imanhua_013_095646515.png","/Files/Images/120/50567/imanhua_014_095646515.png","/Files/Images/120/50567/imanhua_015_095646531.png","/Files/Images/120/50567/imanhua_016_095646531.png","/Files/Images/120/50567/imanhua_017_095646531.png","/Files/Images/120/50567/imanhua_018_095646546.png"];var sid=50567;

三条js语句!

 

nodejs

------------

安装nodejs成功后,编辑test.js,写入如下代码:

var s = function(p,a,c,k,e,d){
                e=function(c){
                        return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
                };
                if(!''.replace(/^/,String)){
                        while(c--)d[e(c)]=k[c]||e(c);
                        k=[function(e){return d[e]}];
                        e=function(){return'\\w+'};c=1;};
                        while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
                        return p;
                }
                (
                        '5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2
/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","
/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646
453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|im
anhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_0956465
15|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{}
                );

console.log(s);

  在shell里,输入:

 

node test.js 

 输出上述值。

 

畅想

------

php正则获取上述代码,在服务器端生成test.js,那么,用PHP提供的函数exec获取路径地址,借助json_decode函数,就可以搞定了。

 

学习服务器端的JavaScript_Node.js》忠实地记录了如何写一个twitter客户端程序,是非常好的howto~

 

分享到:
评论

相关推荐

    NodeJS——服务器端JavaScript运行环境.pdf

    其次,它使得 JavaScript 语言可以在服务器端运行,提供了一个新的选择项给开发者;最后,它的出现也带来了很多的可能性,如使用 NodeJS 构建实时的 Web 应用程序、游戏服务器、聊天服务器等。 NodeJS 的优点很多...

    nodejs开发电商服务器端

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。在电商领域,Node.js由于其高效的异步非阻塞I/O模型,以及丰富的开源库,常被用来构建高性能的API服务器。在...

    Node.js-通过NodeJS运行服务器端JavaScript文件像通过Apache运行PHP一样方便

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript编写代码,从而打破了JavaScript只能在浏览器中执行的传统。标题提到“通过Node.js运行服务器端JavaScript文件像通过...

    服务器端JavaScript——NodeJS

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript能够在服务器端执行,打破了JavaScript长期以来只能在浏览器中运行的限制。Node.js使用了一个事件驱动、非阻塞I/O模型,使其轻量又高效,非常...

    Nodejs创建web服务器.zip

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行编程,实现了全栈开发的可能性。 描述中提到,这是一个仅供个人方便下载的资源,其内容包括了两个文件,一个名为...

    nodejs搭建本地服务器轻松解决跨域问题

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以使用JavaScript编写服务器端代码。Node.js提供了http模块,我们可以利用这个模块来创建一个简单的Web服务器。 **创建Node.js Web服务器** 1. ...

    nodejs 服务器端的JavaScript脚本(node.js).zip

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"nodejs 服务器端的JavaScript脚本(node.js)"压缩包可能包含了一系列的示例代码、教程或者项目,旨在帮助...

    nodejs 做本地web服务器

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者可以用 JavaScript 语言编写服务器端程序。由于其轻量级、高效的特点,Node.js 成为了搭建本地 Web 服务器的首选工具之一。在本文中,我们将...

    NodeJS中文文档精编.pdf 全文免费

    NodeJS是 JavaScript 运行时环境,可以让 JavaScript 代码在服务器端执行。NodeJS 实际上是对 ES 标准的一个实现,同时 Node 也是一个 JS 引擎。 Node 只对 ES 标准进行了实现,所以在 NodeJS 中不包含 DOM 和 BOM...

    做着玩的NodeJS服务器端模板引擎--Elf

    《 Elf:一个趣味性的NodeJS服务器端模板引擎实践》 在IT行业中,Node.js作为一款强大的JavaScript运行环境,因其异步非阻塞I/O模型和高效的性能,深受开发者喜爱,尤其在构建服务器端应用时。而模板引擎是前端与...

    reagent-nodejs:使用 nodejs 在服务器端运行试剂

    在服务器端,reagent-nodejs 使用 node 和 express 到服务器内容。 需要几个垫片才能使其工作: 闭包需要从闭包库下载 nodejs.js 引导代码 react.js 的副本需要存在于服务器的根目录中 javascript 存根 - window.

    基于NodeJS的智能家居语音控制系统服务器端设计与实现.pdf

    在深入探讨《基于NodeJS的智能家居语音控制系统服务器端设计与实现》这一课题之前,我们需要理解当前智能家居技术的发展趋势,以及语音控制如何为智能家居带来便捷。在此基础上,我们将具体探讨NodeJS的特性,以及...

    幕布影视手机端,前端就是uniapp开发的,后端是nodejs 下载完前后端运行就可以用

    通过Express或Koa等web框架,开发者可以快速搭建稳定高效的服务器端架构。 3. node.js的优势:node.js的单线程模型和V8引擎使其具备高性能和轻量级的特性,能有效应对高并发场景。同时,JavaScript语言的使用使得...

    eni-nodejs:“NodeJS - 在服务器端利用 JavaScript 的力量”一书中使用的示例

    《NodeJS - 在服务器端利用 JavaScript 的力量》是一本深入探讨Node.js技术的书籍,它旨在帮助开发者充分利用JavaScript在服务器端的强大能力。本书通过一系列示例代码,详细讲解了Node.js的核心概念、特性以及实际...

    Web Crawler_Spider用于NodeJS +服务器端jQuery;-).zip

    在本项目中,“Web Crawler_Spider用于NodeJS +服务器端jQuery”结合了Node.js的高效性和jQuery的强大DOM处理能力,构建了一个在服务器端运行的爬虫。以下是对这个项目的详细说明: **Node.js**: Node.js是一个...

    nodejs(可以运行的环境).

    它允许开发者使用 JavaScript 进行服务器端编程,打破了JavaScript仅能在浏览器端运行的传统。以下是对Node.js环境及其相关知识的详细阐述: 一、Node.js的基本概念 1. JavaScript 运行时:Node.js 提供了一个让 ...

    NodeJS 安装包

    NodeJS 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。NodeJS 的设计思想是事件驱动、非阻塞 I/O 模型,这使得它在处理高并发...

    Node.js-nodejs利用socket搭建聊天服务器

    在IT行业中,Node.js是一个非常流行的JavaScript运行环境,它允许开发者使用JavaScript进行后端开发。本文将深入探讨如何使用Node.js结合Socket.IO搭建一个实时通信的聊天服务器。 首先,我们需要理解Node.js的基本...

    newsfeed-nodejs:通过运行服务器端 javascript 来显示新闻源内容的网页

    通过运行服务器端 javascript 来显示新闻源内容的网页 项目简介 创建具有以下要求的新闻网站: 在网页上显示 BBC 和 SKY 的 10 大头条新闻 使用 node.js 服务器 所有数据都要经过nodejs服务器 源头控制 用于测试的...

    NodeJS学习笔记和代码

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"NodeJS学习笔记和代码"的压缩包显然包含了帮助初学者掌握NodeJS基础知识和实践技能的所有必要资料。 ...

Global site tag (gtag.js) - Google Analytics