模块:实现特定功能的文件
1.通过require引入模块
2.模块中的功能(变量,函数),通过赋给exports对象的某个属性提供给调用者使用
1
2
|
function
sum(){xxxxx}
exports.sum = sum;
|
在另一个文件夹中这样调用
1
2
|
var
sum = require(
'tt'
);
sum.sum();
|
exports实现了隔离作用域,外部只能访问exports提供出来的函数
exports 是 module exports的别名
包:包是一个文件夹,将模块封装起来,用于发布、更新、依赖管理和版本控制。
通过package.json描述包的信息,入口文件,依赖的外部包等。
通过npm install 安装包,通过require使用
node中的javascript
文件相关操作
fs对象
fs.readfile 一个异步读取的方法
1
2
3
4
5
|
require(
'fs'
)
fs.readfile(filepath,
function
(err,data){
if
(err){console.log(err)};
else
{console.log(data).toString()};
});
|
1
2
3
4
5
|
require(
'fs'
)
fs.readfile(filepath,
'utf-8'
,
function
(err,data){
if
(err){console.log(err)};
else
{console.log(data)};
});
|
fs.readfileSync()同步读取方法,会阻塞下面代码的执行
1
|
var
data = fs.readfileSync(
'tt.js'
,
'utf-8'
);
|
js
事件、观察者模式、事件原理、自定义事件
path
require('path')
path.sep --> console.log(path.sep) 打印分隔符,sep是seperator的缩写
path.extname(‘test.txt’) -->获取文件的扩展名,服务器编程经常用到
url对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var
http p = require(
'http'
);
var
url = require(
'url'
);
var
fs = require(
'fs'
);
http.createServer(
function
(request,response){
var
urlObj = url.parse(request.url);
console.log(urlObj);
var
pathname = urlObj.pathname;
var
query = urlObje.query;
fs.readFile(pathname.substr(
1
),
'utf-8'
,
function
(err,data){
if
(err){
response.writeHead(
404
);
response.end(
'file not found'
);
}
else
{
reponse.end(data);
}
});
|