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主要模块介绍属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容