node.js-1
来源:互联网 发布:四叠半神话大系 知乎 编辑:程序博客网 时间:2024/06/04 20:01
在linux下新建一个文件 如hello.js
用vi打开文件(编辑器随便)
在在文件中输入console.log('hello node.js');
完成后保存
在用node编译源文件,你将在控制台得到 hello node.js
这就是第一个node程序
显然大家都可以知道console必定包含了想标准输出写入的操作。
例如刚刚用的console.log,它是我们最常用的输出指令类似于c中的printf 、c++中的cout以及java中的System.out.println等
当然node也可以接受任意多个参数,支持%d、%s变量引用。
例如:
//新建一个consolelog.js
在文件中像c一样把printf改成console.log
console.log('%s : %d‘,’Age‘,25);
你就可以在控制台得到 Age : 25 (ps:是不是感觉和C一样用?)
-----------------------------------------------
node.js命令行工具
用node --help可以查看
前面提到过用node console.js直接晕洗脚本文件,还用一种输出hello node.js的方式 如:
$ node -e "console.log('hello node.js");"可以得到和上面一样运行node node.js的结果
我们可以把要执行的语句作为node -e的参数直接执行
使用node的RERL(read-eval-print loop即输入-求值-输出循环)模式
在终端输入node就会进入REPL模式
可以看到提示符变成了>。进入后就输入命令,按回车结束。node.js会解析并执行命令。
如果在REPL中执行一个函数,会显示这个函数的返回值,如果没有返回值的华会显示.当然如果你输入了错误的指令,REPL会立即显示错误输出调用栈。在任何时候连续两次ctrl+c会直接退出node.js的REPL模式
建立HTTP服务器
node.js将HTTP服务器这一层抽离,直接面向浏览器用户。
创建HTTP服务器实例:
//app.js
var http=require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':text/html'});
res.write('<h1>node.js</h1>');
res.end('<p>hello node.js</p>');
}).listen(3000);
console.log("HTTP Server is listening at port 3000.");
保存后大功告成
在终端输入node app.js
打开浏览器输入http://127.0.0.1:3000你将得到你第一个http服务器(ps:我这出现了问题,开启后访问一直连接不上,只用我在终端关闭的时候,页面才出来,刷新后又连接不上了。无伤大局,继续--come on)
介绍一个用于调试node.js的工具 supervisor,无重启刷新,解决开发中的调试问题
回调函数
实例:
//readfile.js
var fs=require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.error(err);
}
else{
console.log(data);
}
});
console.log('end.');
这里使用的是异步的方式,这种方式不容易被理解,从输出的结果就可以看出,终端先输出的是end.然后才输出的文件内容。这就是异步。
当然,我们也可以采取同步的方式
//readfileync.js
var fs=require('fs');
fs.readFileSync('file.txt','utf-8');
console.log(data);
console.log('end.');
这样的话输出的就先是文档的内容再输出end。相比较可以看出,定义回调函数在其中起了很大的作用。
从readFile的参数中我们可以看出,第一个参数是文件名,第二个是编码,第三个便是回调函数,当然此处的回调函数是一个匿名的函数,我们完全可以申明一个方法,将它作为readFile的第三个参数;
实例如:
//readfilecallback.js
function readFileCallBack(err,data)
{
if(err){
console.error(err);
}
else{
console.log(data);
}
}
var fs=requier('fs');
fs.readFile('file.txt','utf-8',readFileCallBack);
console.log('end.');
fs.readFile所做的工作是将异步的I/O请求发送给了操作系统,然后立即返回并执行后面的语句,执行玩以后进入时间循环监听时间。当fs收到I/O请求完成的事件时。时间循环会主动调用回调函数以完成后续工作。
//node.js中,并不是所有的API都支持提供了同步和异步版本。node.js不鼓励使用同步I/O.
- node.js随笔1-初识node.js
- Node.js 学习1
- Node.js先睹为快(1)
- node.js-1
- node.js 学习1
- node.js(1)
- Node.Js 1
- Node.js基础1
- Node.js(1)
- Node.js---1
- node js学习(1)
- node.js学习-1
- Node即学即用-1、Node.js简介
- 【深入浅出node.js】读书摘录1 - node.js简介
- node.js学习笔记1——node.js是什么
- 1、安装node.js,熟悉node.js环境
- node.js 入门(1)
- Node.js学习(1)----入门
- u-boot与uImage
- Matlab元胞数组:(广义矩阵)
- jquery源码分析学习地址
- ubuntu 图形界面无法登录
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- node.js-1
- VirtualBox3.2.12在CentOS中共享Windows文件夹
- JavaWeb-数据库
- 安装 sql server 2005 时 提示 “SQL server服务无法启动”解决方案
- 经典排序算法 – 插入排序Insertion sort
- Android消息推送机制
- 项目经理责任
- Windows程序进程中内核对象句柄表
- JavaWeb-JDBC