learn nodejs by doing 教程1<nodejs基础 >
2018-01-26 15:18
435 查看
1. 01_helloworld
hello nodejs, 你真的好有趣啊!
2. 02_static_render
练习了fs取文件
3. 03_http
4. 04_url
05_router
06_fs1
07_fs2
08_fs
09_fs
var http = require("http");
var url = require("url");
var fs = require("fs");
var path = require("path");
http.createServer(function(req,res){
//得到用户的路径
var pathname = url.parse(req.url).pathname;
//默认首页
if(pathname == "/"){
pathname = "index.html";
}
//拓展名
var extname = path.extname(pathname);
//真的读取这个文件
fs.readFile("./static/" + pathname,function(err,data){
if(err){
//如果此文件不存在,就应该用404返回
fs.readFile("./static/404.html",function(err,data){
res.writeHead(404,{"Content-type":"text/html;charset=UTF8"});
res.end(data);
});
return;
};
//MIME类型,就是
//网页文件: text/html
//jpg文件 : image/jpg
var mime = getMime(extname);
res.writeHead(200,{"Content-type":mime});
console.log(data)
res.end(data);
});
}).listen(4000,"127.0.0.1");
//可以为字符串,而且这个函数是定义在下面的
function getMime(extname){
switch(extname){
case ".html" :
return "text/html";
break;
case ".jpg" :
return "image/jpg";
break;
case ".css":
return "text/css";
break;
}
}练习js函数的用法
var http = require("http") var server = http.createServer(function (req, res) { res.writeHead(200, {"Content-type":"text/html;charset=UTF-8"}) res.end("hello nodejs, 你真的好有趣啊!") }) server.listen(4000, "127.0.0.1")打开浏览器: http://localhost:4000/ 就看到结果
hello nodejs, 你真的好有趣啊!
2. 02_static_render
var http = require("http") var fs = require("fs") var server = http.createServer(function (req, res) { if(req.url == "/fang"){ fs.readFile("./test/xixi.html", function (err, data) { res.writeHead(200, {"Content-type":"text/html;charset=UTF-8"}) res.end(data) }) }else if(req.url == "/0.jpg"){ fs.readFile("./test/0.jpg", function (err, data) { res.writeHead(200, {"Content-type":"image/jpg"}) res.end(data) }) }else if(req.url == "/b.css"){ fs.readFile("./test/b.css", function (err, data) { res.writeHead(200, {"Content-type":"text/css"}) res.end(data) }) }else{ res.writeHead(200, {"Content-type":"text/html;charset=UTF-8"}) res.end("this page is not found") } }) server.listen(4000, "127.0.0.1")
练习了fs取文件
3. 03_http
var http = require("http") var server = http.createServer(function (req, res) { console.log("服务器收到了请求:" + req.url) res.writeHead(200, {"Content-Type":"text/html;charset=UTF-8"}) res.write("<h1>我是主标题</h1>") res.write("<h1>我是1主标题</h1>") res.write("<h1>我是2主标题</h1>") res.end((1+2).toString()) }) server.listen(4000, "127.0.0.1")练习写入http文件,这个charset编码决定显示文字时用的编码
4. 04_url
var http = require("http") var url = require("url") var server = http.createServer(function (req, res) { var pathname = url.parse(req.url).pathname var query = url.parse(req.url, true).query var age = query.age // console.log("pathname:" + pathname) //pathname:/pages/viewpage.action // console.log("query:" + query) console.log("age:" + age) //age:26 res.end() }) server.listen(4000, "127.0.0.1") //http://localhost:4000/pages/viewpage.action?age=26练习url解析,得到客户端请求的参数
05_router
var http = require("http"); var server = http.createServer(function(req,res){ //得到url var userurl = req.url; res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}) //substr函数来判断此时的开头 if(userurl.substr(0,9) == "/student/"){ var studentid = userurl.substr(9); console.log(studentid); if(/^\d{10}$/.test(studentid)){ res.end("您要查询学生信息,id为" + studentid); }else{ res.end("学生学号位数不对"); } }else if(userurl.substr(0,9) == "/teacher/"){ var teacherid = userurl.substr(9); if(/^\d{6}$/.test(teacherid)){ res.end("您要查询老师信息,id为" + teacherid); }else{ res.end("老师学号位数不对"); } }else{ res.end("请检查url"); } }); server.listen(4000,"127.0.0.1"); //http://localhost:4000/student/1001000000练习字符串截取
06_fs1
var http = require("http"); var fs = require("fs"); var server = http.createServer(function(req,res){ //不处理小图标 if(req.url == "/favicon.ico"){ return; } //给用户加一个五位数的id var userid = parseInt(Math.random() * 89999) + 10000; console.log("欢迎" + userid); res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}); //两个参数,第一个是完整路径,当前目录写./ //第二个参数,就是回调函数,表示文件读取成功之后,做的事情 fs.readFile("./test/1.txt",function(err,data){ if(err){ throw err; } console.log(userid + "文件读取完毕"); res.end(data); }); }); server.listen(4000,"127.0.0.1");练习文件读取
07_fs2
var http = require("http"); var fs = require("fs"); var server = http.createServer(function(req,res){ //不处理小图标 if(req.url == "/favicon.ico"){ return; } //stat检测状态 fs.stat("./album",function(err,data){ //检测这个路径,是不是一个文件夹 console.log(data.isDirectory()); }); }); server.listen(4000,"127.0.0.1");练习stat检测文件状态
08_fs
var http = require("http") var fs = require("fs") var server = http.createServer(function (req, res) { fs.readdir("./album/", function (err, files) { var wenjianjia = []; (function iterator(i) { if(i == files.length){ console.log(wenjianjia); return; } fs.stat("./album/" + files[i], function (err, stats) { if(stats.isDirectory()){ wenjianjia.push(files[i]); } iterator(i+1); }); })(0); }); res.end(); }) server.listen(4000,"127.0.0.1");用迭代器将异步变为同步操作
09_fs
var http = require("http");
var url = require("url");
var fs = require("fs");
var path = require("path");
http.createServer(function(req,res){
//得到用户的路径
var pathname = url.parse(req.url).pathname;
//默认首页
if(pathname == "/"){
pathname = "index.html";
}
//拓展名
var extname = path.extname(pathname);
//真的读取这个文件
fs.readFile("./static/" + pathname,function(err,data){
if(err){
//如果此文件不存在,就应该用404返回
fs.readFile("./static/404.html",function(err,data){
res.writeHead(404,{"Content-type":"text/html;charset=UTF8"});
res.end(data);
});
return;
};
//MIME类型,就是
//网页文件: text/html
//jpg文件 : image/jpg
var mime = getMime(extname);
res.writeHead(200,{"Content-type":mime});
console.log(data)
res.end(data);
});
}).listen(4000,"127.0.0.1");
//可以为字符串,而且这个函数是定义在下面的
function getMime(extname){
switch(extname){
case ".html" :
return "text/html";
break;
case ".jpg" :
return "image/jpg";
break;
case ".css":
return "text/css";
break;
}
}练习js函数的用法
相关文章推荐
- NodeJs>------->>第三章:Node.js基础知识
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
- Node.js首选web开发框架-Express.js基础教程
- 分针网—每日分享:安装使用Mongoose配合Node.js操作MongoDB的基础教程
- Node.js的npm包管理器基础使用教程
- Node.js 基础教程之全局对象
- 安装使用Mongoose配合Node.js操作MongoDB的基础教程
- 【node.js】基础<一>
- nodejs npm 错误 Error: UNKNOWN: unknown error, mkdir 'D:\Develop\nodejs\node_global' at Error <native>
- Mongoose配合Node.js操作MongoDB的基础教程
- node.js零基础详细教程(3):npm包管理、git github的使用
- nodejs教程:配置nodejs.exe的windows目录结构
- <转>学习node.js,为什么选择node.js,为什么NodeJs这么快
- Node.js(一)——NodeJs基础
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
- node.js基础教程
- 安装使用Mongoose配合Node.js操作MongoDB的基础教程
- node.js零基础详细教程(6):mongodb数据库操作 以及导入导出
- 【Nodejs】windows下node.js安装教程图文详解
- node.js零基础详细教程(5):express 、 路由