您的位置:首页 > Web前端 > Node.js

learn nodejs by doing 教程1<nodejs基础 >

2018-01-26 15:18 435 查看
1. 01_helloworld

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函数的用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: