网站首页 > 知识剖析 正文
全局对象
全局对象可以在程序的任何地方进行访问,可以为程序提供经常使用的特定功能
console对象
可以提供控制台的标准输出
- console.log():打印字符,并以换行符结束。该方法接收若干个参数,如果只有一个参数,则输出这个参数的字符串形式
这个与C语言的输出方式相同:console.log('变量的值:%d,10) - console.time():输出时间,表示计时开始
- console.timeEnd():结束时间,表示计时结束
process对象
process对象一般用来描述当前程序的状态
- argv:返回一个数组,由命令行执行脚本时的各个参数组成
- env: 返回当前系统的环境变量
- version: 返回当前node.js的版本
全局函数
- setTimeout:(cb,ms)在指定的毫秒数后执行指定函数(cb)。指定时间后,只执行一次
- clearTimeoout(t):停止一个之前调用setTimeout()创建的定时器
- setInterval(cb,ms):(cb,ms)在指定的毫秒数后执行指定函数(cb)。指定时间后,周期循环
模块化编程
- exports对象:创建一个js文件,可以通过require()函数引用该js文件
exports.xxx=function(){}
var module=require('./module.js') - module对象:
function Xxx(){};
module.exports=Xxx
内置模块
os模块
- const os=require('os')
url模块
const url=require('url')
方法名称 | 说明 |
parse() | url字符串转换成url对象 |
format(urlObj |
Query String模块
const querystringl=require('querystring')
crypto模块——createHash()
var crypto=require('crypto');
var shasum=crypto.createHash('sha256')
shasum.updata('crypto_hash');
var output=shasum.digest('hex');
console.log('crypto_hash:',output);
代码作用:输出字符串的Hash密码
异步编程
异步编程的含义是指在执行异步操作的时候,不会影响其他语句的执行
回调函数
回调函数类似于C++中的递归,但是不同的是,node.js中的递归实在使用函数的时候,嵌套调用
c=fB(fA());
fB()和fA()都是一个函数
监听事件
在javascript中监听:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script language="javascript">
window.addEventListener('load',function(){});
</script>
</head>
<body>
</body>
</html>
添加监听事件
on(eventName,eventHandler)
handler一般指的是一个对象
删除监听事件
removeListener(eventName,handler)删除指定事件名称的监听事件
removeAllListens([eventName])删除所有监听事件
主动触发监听事件
当对象满足事件发生的条件时,Node.js就会自动触发监听事件,执行监听事件中事件监听器的函数内容。但是,我们也需要主动触发监听事件,此时,使用方法emit()
on(eventName,eventHandler)
EventEmitter对象
在第一部分中,我们介绍了process对象,这是一个全局对象。这个对象主要是用来描述程序的状态的。我们前面都是在process对象上进行添加监听事件,删除监听事件等操作的。之所以有这些操作,是因为process对象已经继承了EventEmitter这个类,所以我们可以直接用EventEmitter的方法。我们也可以自己定义一个EventEmitter对象,来实现事件监听
方法名称 | 用处 |
addListener(eventName,eventHandler) | 添加监听事件 |
on(eventName,eventHandler) | 添加监听事件 |
setMaxListeners(limit) | 设置监听事件的数量 |
removeListeners(eventName,handler) | 删除指定事件名称的监听事件 |
removeAllListeners([eventName]) | 删除全部监听事件 |
once(eventName,eventHandler) | 仅执行一次监听事件 |
包管理
包和模块的区别:包实在模块的基础上更进一步组织javascript代码的目录
包结构 | 说明 |
package.json | 在顶层目录的包描述文件,说明文件 |
bin | 存放可执行二进制文件的目录 |
lib | 存放javascript文件的目录 |
doc | 存放文档的目录 |
test | 存放单元测试用例代码的目录 |
package.json相当于说明书,可以让项目开发者对包的信息一目了然,其中有各种描述信息
属性 | 说明 |
name | 包的名称 |
description | 包的简介 |
version | 包的版本号 |
keywords | 关键词数组,用于在NPM中搜索 |
author | 包的作者 |
main | 配置包的入口,默认是模块根目录 下的index.js |
dependencies | 包的依赖项,NPM会根据该属性自动加载依赖包 |
scripts | 执行运行脚本命令的NPM命令行缩写 |
NPM
NPM(node package manager),同Node.js一起安装的包管理和分发工具,能够很方便的让JavaScript开发者下载、安装、上传、管理已经安装的包。
npm安装包后,会自动在项目的当前目录下创建一个目录,目录的名称叫做node_modules,然后把第三方包自动放在该目录下
web服务器开发——http模块
有了http模块,就可以给该项目创建服务器了,就不再需要apache来创建了
server对象
创建server对象
createServer()可以创建server对象
使用server对象
server.listen(port)启动服务器
server.close()关闭服务器
创建服务器
var server=require('http').createServer();
server.listen(12345);
response对象
response.writeHead(statusCode,statusMessage,headers)
response.end(data,encoding,callback)
end就可以输出内容返回给客服端
require('http').createServer(function(request,response){
response.writeHead(200,{'content-Type':'text/html'});
response.end('<h1>hello</h1>);}).listen(12345)
request对象
var http=require('http');
var fs=require('fs);
http.createServer(function(request,response){
if(request.method=='GET')
{fs.readfile(login.html',function(error,data){
response.writeHead(200,{'content-Type':'text/html'});
response.end(data);
});
}else if(request.method=='POST'){
request.on('data',function(data){
response.writeHead(200,{'content-Type':'text/html'});
response.end('<h1>'+data+'</h1>');
});
}
}).listen(12345);
简单说一下对于这段代码的理解:当我们输入该地址后,此时是一个get请求,服务器,也就是这里创建的服务器,会根据if条件判断,把login.html这个文件都进来,并且展示在客服端(浏览器)中
当我们提交了表单以后,也就是发送了post请求了,此时,触发第二个if,会返回一个data数据
创建服务器——express模块
模板引擎
只需要用别人已经开发好的web开发模块就可以
暂未明白如何使用
文件读写
读
var fs=require('fs');
var text=fs.readFile(file,encoding,callback);
//异步读取,数据以callback回调函数的参数的形式返回
写入
var fs=require('fs');
fs.writeFile(file,data,encoding,callback)
异常处理
回调函数callback参数error可以得到异常,直接判断error是否存在即可
读取目录
fs.readdir(path,function(err,files){})
err得到异常,files得到目录
MySQL数据库
需要npm安装mysql模块
连接MySQL
var mysql=require('mysql');
建立连接
var client=mysql.createConnection({
host:'localhost',
port:"",
user:'',
password:'';
database:''
});
client.query('ues database')
client.query(SQL,function(error,result,fields){});
猜你喜欢
- 2024-11-17 CSV Parquet Avro:为正确的工作选择合适的工具
- 2024-11-17 JS基础进阶- 同步异步编程和EventLoop底层机制
- 2024-11-17 5个你应该知道的JavaScript技巧,不能错过!
- 2024-11-17 map映射+异步加载 完美过渡 if else
- 2024-11-17 Chrome控制台的一些有用API(chrome控件)
- 2024-11-17 Javascript调试器自编代码及运用(js调试工具和方法如何使用)
- 2024-11-17 NET中的定时器:种类与应用场景(winform定时器)
- 2024-11-17 全栈之路:从一个深拷贝开始循序渐进
- 2024-11-17 localStorage灵魂五问。 5M??10M(灵魂官方网站)
- 2024-11-17 JS中用于跟踪程序执行时间的专用函数,两个同时出现截断时间戳
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)