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