nodejs主要模块介绍
本章节简单介绍一下nodejs的主要模块,需要的朋友可以做一下参考。
一.http模块:
主要类:
Class: http.Server
var server = http.createServer();
server就是http.Server类的实例。
常用的方法有:
server.listen(port, [hostname], [backlog], [callback])
Class: http.ServerResponse
var server = http.createServer(function(req,res){ });
res就是 http.ServerResponse类的实例。
Class: http.IncomingMessage
var server = http.createServer(function(req,res){ });
req就是http.IncomingMessage类的实例。
二.server对象:
可以使用on语法监听某个事件。
var http = require('http'); var server = http.createServer(); server.on('request',function ( req,res ) { res.setHeader('Content-type','text/html;charset=utf8'); if ( req.url == '/' ){ res.end('index'); } else { res.end('404'); } }); server.listen(8080,'localhost');
三.req对象:
每次上行请求头对象
req.headers HTTP上行请求头
req.httpVersion http请求的版本。现在基本上都是1.1 req.method “GET”、”POST”就是请求的类型 req.url 用户请求的网址
四.res对象:
每次下行响应对象
res.end()//每次都要有这个语句,表示这次的发送已经结束参数必须是string、buffer(图片、文件)。 res.write()//就是写HTTP下行请求的body res.setHeader()//设置返回的报文头部 res.statusCode = 404;//设置状态码 res.writeHead()//和res.setHeader差不多 res.writeHead(288 , {"Content-Type":"text/plain"});
五.url模块:
作用内置模块,解析url,解析地址。 分析和解析 URL 的工具
url.parse()就是用来解析网址,接收一个字符串,返回一个JSON:
var obj = url.parse("http://localhost:8080/a/b/c/1.html?name=ting&age=21");
url.parse方法第二个参数如果是true,那么返回的对象中的query就是json
query: { xingming: 'xiaoming', age: '12' }
六.querystring模块:
querystring模块是专门用来解析GET请求的查询字符串的。
console.log( qs.parse('name=ting&age=21&hobby=run&hobby=sing') );
返回:{ name: 'ting', age: '21', hobby: [ 'run', 'sing' ] }
七.path模块:
处理和转换文件路径的工具集,专门处理路径
path.basename() :返回路径中的文件名
path.dirname():返回路径中的文件夹名
path.extname():返回路径的拓展名
console.log( path.basename('/xixi/haha/a.html') ); //a.html console.log( path.extname('/xixi/haha/a.html') ); //.html console.log( path.dirname('/xixi/haha/a.html') ); ///xixi/haha
八.fs模块:
文件处理模块,可以读文件,也可以写文件
fs.readFile(); //读取文件内容 fs.readDir(); //读取文件夹名 fs.appendFilr(); //追加文件 fs.writeFile(); //写入文件(覆盖原有的):
九.自定义模块:
每一个js文件中可以看成是一个小小的模块
require('./test/a.js');
每个js文件就是一个闭包,声明的函数、变量只在这个js文件内部有定义。
A require了 B , 那么B里面的所有路径都要按照A的路径写。
如果需要使用到其它文件中的变量,使用exports暴露出去。
exports.*** = ***;
testA .js
var a = 100;
exports.a = a;
主文件
var testA = requrie('./testA.js');
console.log( testA.a );
暴露唯一的接口,module.exports ,一般使用到构造函数。
如果只有写文件载入,会去默认文件夹下:node_modules 寻找是否有当前需要载入的文件
require('test.js');
也可以直接省略路径、省略文件名,只写文件夹名
require('aa');
实际上引用的是node_moduels文件夹里面的aaa文件夹里面的index.js文件。
一般第三方模块,都放入node_modules文件夹中。
package.json:
配置信息: { "name": "my_package", //项目名字 "version": "1.0.0", //版本号 "main": "index.js", //入口文件 "keywords": [], //关键词,就是搜索什么npm上能够显示你 "author": "ag_dubs", //作者 "license": "ISC", //版权协议 "repository": { //代码托管仓库,这个会自动生成一个连接 "type": "git", "url": "https://github.com/ashleygwilliams/my_package.git" }, "bugs": { //如果发现bug应该交给谁 "url": "https://github.com/ashleygwilliams/my_package/issues" }, "dependencies": { "underscore": "*", "date-format" : "0.0.2" }, "homepage": "https://github.com/ashleygwilliams/my_package" //个人网站 } 最重要的信息是:依赖 { "dependencies": { "underscore": "*", "date-format" : "^0.0.2" } }
formidable:
formidable 语法 var form = new formidable.IncomingForm(); //设置上传路径 form.uploadDir = "./uploads"; form.parse(req, function(err, fields, files) { //fields是普通域,就是普通的文本框、单选按钮、复选按钮、textarea都存在这个对象里面 //files是上传的文件信息 var newname = df('yyyyMMddhhmmssSSS', new Date()); fs.rename(files.touxiang.path , "./uploads/" + newname + ".jpg",function(err){ if(err){ res.end("error"); return; } }); res.end("ok"); });
nodejs主要模块介绍,这样的场景在实际项目中还是用的比较多的,关于nodejs主要模块介绍就介绍到这了。
nodejs主要模块介绍属于前端实例代码,有关更多实例代码大家可以查看。