node入门(一)--内置模块

时间:2022-10-27 22:13:42

Global and window 全局对象
首先,下载安装nodejs

//node环境下为global
//浏览器环境下为window
global.setTimeout(function () {
console.log("xx");
},1000);
//global下的内置对象 setTime(), setInterval()
//当前绝对路径文件夹—前面不加global
console.log(__dirname);
//当前文件的绝对路径
console.log(__filename);

process.exit(); 进程

console.log("ceshi");
console.log("ceshi");
process.exit();//提前结束进程,后面不执行
console.log("ceshi");

node内置模块

语法:require(‘模块名’)

util模块

见文知意,就不累叙
isArray(),isRegExp(),isDate(),isError

eg:
var util = require('util');
//传入参数,返回是布尔值
console.log(util.isArray([]));

http模块

抓取网页内容
语法:request({host,port,path,method,headers},callback)
var http = require('http');
//发起一个request请求
http.request({
host: 'www.baidu.com',//必须
port: 80,
path: '/',//根路径
method : 'get',
headers:{//主要用于同个ip下的多个域名访问
host:'file.home.com'
}
}, function (response) {
var datas = [];
//注册异步,得到返回值
response.on('data', function (data) {
datas.push(data);
});
response.on('end', function () {
console.log(datas.join(''));
})
}).end();

createServer 创建一个服务器

创建一个服务器:
createServer(cb(req,resp)),listen(port,cb))
response.writeHead(200,{})
//一个简易服务器 

var http = require('http');
http.createServer(function (req,resp) {
/*resp.writeHead(302,{//请求转发重定向
location : 'http://www.baidu.com'
});*/

//设置请求头,以纯文本返回 可选:text/html
resp.writeHead(200,{
'Content-Type' : 'text/plain'
});
resp.write('<h3>11___11</h3>'); //write后还可以继续写
resp.end('<h1>js js JS</h1>');//end就代表不能继续
}).listen(3000,function () {
console.log('服务器打开了');
});

使用get方式与服务器进行交互

var http = require('http');
var url = require('url');//导入url模块得到请求数据
var queryString = require('querystring');//解析

http.createServer(function (req,resp) {
/*get读取方式*/
console.error(url.parse(req.url));
/** 通过url parse解析的get请求数据
* Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?name=123&password=321',
query: 'name=123&password=321',
pathname: '/',
path: '/?name=123&password=321',
href: '/?name=123&password=321' }
* */
var query = url.parse(req.url).query;
console.log(query); //name=123&password=321
//加载queryString 解析为json
console.log(queryString.parse(query));
//{ name: '123', password: '321' }

resp.writeHead(200,{//请求转发
'Content-Type' : 'text/html'
});
resp.end('<form method="get">' +
'<input name="name"><br>' +
'<input name="password"><br>' +
'<button type="submit">点我</button>' +
'</form>');
}).listen(3000,function () {
console.log('服务器打开了');
});

使用post方式与服务器进行交互

var http = require('http');
var url = require('url');//导入url模块得到请求数据
var queryString = require('querystring');//解析

http.createServer(function (req,resp) {
/*post请求方式*/
var datas = [];
//在req上注册data事件
req.on('data',function (data) {
datas.push(data);
});
req.on('end',function () {
console.log(datas.join(''));
//name=123&password=123
console.log(queryString.parse(datas.join('')));
//{ name: '123', password: '123' }
});

resp.writeHead(200,{//请求转发
'Content-Type' : 'text/html'
});
resp.end('<form method="post">' +
'<input name="name"><br>' +
'<input name="password"><br>' +
'<button type="submit">点我</button>' +
'</form>');
}).listen(3000,function () {
console.log('服务器打开了');
});

文件系统模块

eadFile-readdir
readFile(path,cb(err,data)) 读取文件
readdir(path,cb(err,files)) 读取目录下的文件
writeFile(path,data) 写入文件
unlink() 删除文件
mkdir() 创建一个目录
rmdir() 删除一个目录
exists() 判断一个文件是否存在,异步回调
existsSync() 用同步方式判断文件
rename() 修改文件名异步
//test.txt中的文件内容
<h1>Hello world</h1>

var fs = require('fs');
//读取文件 .为当前路径
fs.readFile('test.txt',function (err,data) {
//得到是数组,需要toString();
console.error(data.toString());
//<h1>Hello world</h1>
});
//读取当前文件下的所有文件,包括文件夹内的
fs.readdir('.',function (err,dirs) {
console.log(dirs);
});
//写入数据
fs.writeFile('./test.txt','<h1>世界你好</h1>',function (err) {
console.log(arguments);
})

子进程模块

exec(cmd,{encoding:'GBK'},callback(err,data))
var http = require('http');
var child_process = require('child_process');
http.createServer(function (req, resp) {
resp.writeHead(200, {//请求转发
'Content-Type': 'text/html'
});
//拿help或者ipconfig
child_process.exec('help',{encoding:'GBK'},function (err,data) {
resp.end(data);
});
/*child_process.exec('ipconfig',{encoding:'GBK'},function (err,data) {
resp.end(data);
});*/
}).listen(3000, function () {
console.log('服务器打开了');
});