为什么我JS攻击js settimeout 没效果果呢

专门针对初学者的Node.js教程
发表于 14:09|
来源Modulus Blog|
作者Modulus Blog
摘要:这是一篇专门针对Node.js初学者的教程。该教程将通过具体实例,教你一步步开始Node.js之旅。
Node.js的教程并不缺乏,但有大部分教程针对已有Node.js基础的开发者。“我已下载了Node.js,可我如何开始呢?”以下教程是专门针对Node.js初学者,文中将通过实例分享,一步步教你如何开始Node.js之旅。 &什么是Node.js?很多初学者并没有真正地理解Node.js到底是什么。网站中的描述也没有多大帮助。首先要清楚Node不是一个Web服务器,这十分重要。它本身并不能做任何事情。它无法像Apache那样工作。如果你希望它成为一个HTTP服务器,你必须借助它内置库自己编写。Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime.***Node.jsNode.js的***十分容易。只需满足你需要的***程序即可。已***好Node.js,下一步做什么?***结束后,你可以输入一个新命令“node”。使用该“node”命令有两种不同的方法。第一种不带任何参数,将打开一个交互式Shell“&”(REPL: read-eval-print-loop),你可以在这里执行JavaScript代码。$ node
& console.log('Hello World');
Hello World
undefined上面案例中,我在Shell中键入了“console.log('Hello World')”,并敲回车。Node便开始执行该代码,并显示刚才记录的信息,同时打印出“undefined”。这是因为每条命令都会返回一个值,而console.log没有任何返回,故输出“undefined”。Node命令的另一种用法是执行一个JavaScript文件。这是我们平时最常用的方法。hello.js&b&console.log('Hello World');&/b&&b&$ node hello.js
Hello World&/b&该案例中,我将“console.log('Hello World');”命令存入一个文件中,并将该文件作为node命令的参数。Node运行文件中JavaScript代码,并输出“Hello World”。案例一:文件的输入与输出Node.js包含一组(模块),可以帮助我们做很多事。第一个案例中,我将打开一个Log文件,并对它进行解析。example_log.txt&b&T13:50:33.166Z A 2
T13:51:33.166Z B 1
T13:52:33.166Z C 6
T13:53:33.166Z B 8
T13:54:33.166Z B 5&/b&该Log数据什么意思并不重要,基本可以确定每条信息都包含一条数据、一个字母和一个值。我希望将每个字母后面的值进行累加。我们要做的第一件事是读出文件的内容。my_parser.js&b&// Load the fs (filesystem) module
var fs = require('fs');
// Read the contents of the file into memory.
fs.readFile('example_log.txt', function (err, logData) {
// If an error occurred, throwing it will
// display the exception and end our app.
// logData is a Buffer, convert to string.
var text = logData.toString();
});&/b&通过内置的,我们可以很容易进行文件的输入/输出操作。fs模块有一个方法,该方法以文件路径、回调函数为参数。该回调函数在完成文件读取后调用。文件数据读取后存储在类型中,为基本的字节数组。我们可以通过()方法将它转化为字符串。现在我们对它进行解析。my_parser.js&b&// Load the fs (filesystem) module.
var fs = require('fs');
// Read the contents of the file into memory.
fs.readFile('example_log.txt', function (err, logData) {
// If an error occurred, throwing it will
// display the exception and kill our app.
// logData is a Buffer, convert to string.
var text = logData.toString();
var results = {};
// Break up the file into lines.
var lines = text.split('\n');
lines.forEach(function(line) {
var parts = line.split(' ');
var letter = parts[1];
var count = parseInt(parts[2]);
if(!results[letter]) {
results[letter] = 0;
results[letter] += parseInt(count);
console.log(results);
// { A: 2, B: 14, C: 6 }
});&/b&现在,当你将该文件作为node命令的参数时,执行该命令将打印出如下结果,执行完毕后退出。$ node my_parser.js
{ A: 2, B: 14, C: 6 }我大部时候将Node.js作为脚本使用,正如上面所展示的那样。它更易于使用,是脚本程序有力的替代者。异步回调正如在上例中看到的那样,Node.js典型的模式是使用异步回调。基本上,你告诉Node.js要做的事,它执行完后便会调用你的函数(回调函数)。这是因为Node是单线程的。在你等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。这对于Web服务器尤其重要。在现代Web应用访问数据库的过程中特别普遍。当你等待数据库返回结果的过程中,Node可以处理更多请求。与每次连接仅处理一个线程相比,它使你以很小的开销来处理成千上万个并行连接。案例二:HTTP服务器Node内建有一个模块,利用它可以很容易创建基本的。请看下面案例。my_web_server.js&b&var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8080);
console.log('Server running on port 8080.');&/b&在上面,我说是的基本HTTP服务器。该例中所创建的并不是一个功能全面的HTTP服务器,它并不能处理任何HTML文件、图片。事实上,无论你请求什么,它都将返回“Hello World”。你运行该代码,并在浏览器中输入“http://localhost:8080”,你将看见该文本。$ node my_web_server.js现在你可能已经注意到一些不一样的东西。你的Node.js应用并没有退出。这是因为你创建了一个服务器,你的Node.js应用将继续运行,并响应请求,直到你关闭它。如果你希望它成为一个全功能的Web服务器,你必须检查所收到的请求,读取合适的文件,并返回所请求的内容。值得高兴的是,有人已经帮你做了这个艰难的工作。案例三:Express框架为一个框架,可使创建网站的过程十分简单。你首先需要***它。除了node命令,你还需要访问“npm”命令。利用该工具,你可以访问社区所创建的庞大模块集。其中之一就是Express。$ cd /my/app/location
$ npm install express当你***了一个模块,它将出现在应用程序所在目录的“node_modules”文件夹中。现在我们可以利用Express来创建一个基本的静态文件服务器。my_static_file_server.js&b&var express = require('express'),
app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8080);&/b&$ node my_static_file_server.js现在你已创建了一个强大的静态文件服务器。你可以通过浏览器请求访问你放在public文件夹中任何文件,并进行展示,包括HTML、图片等任何东西。比如,把一个名为“my_image.png”的图片放在public文件夹中,你可以在浏览器中输入“http://localhost:8080/my_image.png”来访问该图片。当然,Express还有很多特性,你可以在以后的开发中继续探索。NPM上面我们已经接触到了,但我仍想强调一下在Node.js开发过程中该工具的重要性。它有成千上万个模块可帮我们解决遇到的大部分典型问题。在重新发明轮子之前,记得检查一下npm中是否有相应功能。&上一例中,我们手动***了Express。如果你的程序包含很多“依赖”(Dependency),那再利用该方法***它们就不合适了。为此npm提供了一个package.json文件。package.json&b&{
"name" : "MyStaticServer",
"version" : "0.0.1",
"dependencies" : {
"express" : "3.3.x"
}&/b&文件包含了应用程序的基本信息。其中“dependencies”部分描述了你想***模块的名称和版本。该案例,接受Express 3.3的任何版本。你可以在该部分列出你想要的所有依赖。代替之前一个个***每个依赖,现在我们可以运行一个命令,即可将它们全部***完成。$ npm install运行该命令,npm将在当下文件夹中查找“package.json”文件。一旦找到,即可***所列出的所有依赖。代码的组织在大部分应用程序中,你的代码往往被分割到几个文件中。现在让我们把最开始案例中的Log分析脚本分离出来。这样该程序将更易于测试与维护。parser.js&b&// Parser constructor.
var Parser = function() {
// Parses the specified text.
Parser.prototype.parse = function(text) {
var results = {};
// Break up the file into lines.
var lines = text.split('\n');
lines.forEach(function(line) {
var parts = line.split(' ');
var letter = parts[1];
var count = parseInt(parts[2]);
if(!results[letter]) {
results[letter] = 0;
results[letter] += parseInt(count);
// Export the Parser constructor from this module.
module.exports = P&/b&在此创建了一个新文件,来存放Log分析脚本。这仅仅是一种标准JavaScript,还有很多方法可用来封装该代码。我选择重新定义一个JavaScript对象,这样更容易进行单元测试。该程序中最重要的部分是“module.exports = P”这一行代码。它告诉Node从该文件中要输出的内容。在该例中,我输出了构造函数,用户可以用Parser对象来创建实例。你可以输出任何你想要的。现在我们看一下,如何导入该文件,来使用Parser对象。my_parser.js&b&// Require my new parser.js file.
var Parser = require('./parser');
// Load the fs (filesystem) module.
var fs = require('fs');
// Read the contents of the file into memory.
fs.readFile('example_log.txt', function (err, logData) {
// If an error occurred, throwing it will
// display the exception and kill our app.
// logData is a Buffer, convert to string.
var text = logData.toString();
// Create an instance of the Parser object.
var parser = new Parser();
// Call the parse function.
console.log(parser.parse(text));
// { A: 2, B: 14, C: 6 }
});&/b&如模块一样,文件被引入其中,你需要输入路径,而非名称。总结希望该教程可以帮助到你。Node.js是一个强大、灵活的技术,可以帮助解决各种各样的问题。它已经超出了我们的想像。(编译:陈秋歌 审校:夏梦竹)原文链接:
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章js 输出语句document.write()及动态改变元素中内容innerHTML的使用-js教程-ab蓝学网
js 输出语句document.write()及动态改变元素中内容innerHTML的使用
简介:WEB前端|下面分别说说js输出语句document.write()及动态改变元素中内容innerHTML的使用方法,想学习有朋友可以看下。
操作 HTML 元素
如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法。
请使用 &id& 属性来标识 HTML 元素:
通过指定的 id 来访问 HTML 元素,并改变其内容:
&!DOCTYPE html&
&h1&My First Web Page&/h1&
&p id=&demo&&My First Paragraph&/p&
&script&document.getElementById(&demo&).innerHTML=&My First JavaScript&;&/script&
JavaScript 由 web 浏览器来执行。在这种情况下,浏览器将访问 id=&demo& 的 HTML 元素,并把它的内容(innerHTML)替换为 &My First JavaScript&。
写到文档输出
下面的例子直接把 &p& 元素写到 HTML 文档输出中:
&!DOCTYPE html&
&h1&My First Web Page&/h1&
&script&document.write(&&p&我是用js输入的内容&/p&&);&/script&
请使用 document.write() 仅仅向文档输出写内容。
如果在文档已完成加载后执行 document.write,整个 页面将被覆盖:
&!DOCTYPE html&
&h1&My First Web Page&/h1&
&p&My First Paragraph.&/p&
&button onclick=&myFunction()&&点击这里&/button&
function myFunction()
document.write(&糟糕!文档消失了。&);
转载注明本文地址:
上一编:下一编:您所在的位置:
& 谈兵论道-剑侍 & 正文
[剑侍]JS为什么这么强
日20:01  
现在人人都说JS强,YYXS弱,我来具体分析一下JS强在哪里
1.改造。改造的武器基本都是百分之几的几率怎么怎么样,JS攻击频率快,所以更占优势。护手改造JS的护手+必杀,一下就+9,相当于一个3必杀剑上了3个大必杀,而法系护手改造只相当于1.25个凝神。
2.BB。JS攻速快,所以BB附体次数多,攻击加的也多。五虎中的张飞有个技能+30%暴击,还有个技能+100%攻击,专门为JS准备的,别的职业看到JS开张飞状态,基本没有敢上去试试的。JS有必杀BB,而法系没有减少蓄气的BB
3.镶工的石头。JS有大必杀,可以大大提高战斗力,而法系没有。不要跟我说大必杀有多贵,要是法系出了个跟大必杀等价的镶工石头,我不信没人买。
4.反弹。反弹衣服可以反弹伤害,但是不能反弹暴击,而JS的伤害主要体现在暴击上。
5.血量。JS穿2血蓝1荆棘的,比法系穿3血蓝的装备血量还多,所以JS用一个通络补得比法系多很多。
6.药。为什么物理系的英雄泪+15%攻击而法系的真纯只+8%?
7.副本。JS的暴击在副本中很重要,龙王被暴击,一下打3w,而法系没暴击,一下只能打1000.
综上所述,JS比法系强的地方一目了然
第N次发稿,希望工作人员给予发表,小弟感激不尽
乐不思蜀,61XS——发粪涂ddv[责任编辑:krisliu]
请您文明上网、理性发言并遵守
新网游视频
新网游画廊
Copyright & 1998 - 2016 Tencent. All Rights Reserved

参考资料

 

随机推荐