node模块

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.1req.method        “GET”、”POST”就是请求的类型req.url  用户请求的网址

res对象

每次下行响应对象

res.end()   每次都要有这个语句,表示这次的发送已经结束    参数必须是string、buffer(图片、文件)。res.write()    就是写HTTP下行请求的bodyres.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.htmlconsole.log( path.extname('/xixi/haha/a.html') );  //.htmlconsole.log( path.dirname('/xixi/haha/a.html') );  ///xixi/haha

fs模块

文件处理模块,可以读文件,也可以写文件fs.readFile();            //读取文件内容   fs.readDir();            //读取文件夹名fs.appendFilr();        //追加文件fs.writeFile();         //写入文件(覆盖原有的)fs.rename();            //修改文件名

自定义模块

每一个js文件中可以看成是一个小小的模块require()谁,就会执行谁。就相当于调用一个函数。A require B, 先执行B全部语句,然后执行A的剩余语句。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");    });

关键字:JavaScript, node.js

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部