nodeJS 中使用 http 创建server
项目源代码的 GitHub 路径如下:
https://github.com/slhuang520/study/tree/master/web/nodeJS/base/http.js
项目整体目录结构如下:
var http = require("http");
var fs = require("fs");
var path = require("path");
http.createServer(function (req, res) {
//console.log(req);
//console.log(res);
// res.write("dddddddddd"); //直接写字符串内容到页面
// res.end();//必须调用结束处理
/*直接将页面读取到,然后写到页面上去 // var index = fs.readFileSync("./views/index.html", "utf8"); // __dirname:当前项目的路径:G:\web\nodeJS\base // __filename:当前js文件所在的路径:G:\web\nodeJS\base\http.js console.log(__dirname); console.log(__filename); var index = fs.readFileSync(path.join(__dirname, "views", "index.html"), "utf8"); res.write(index); res.end(); */
//通过路由匹配不同的页面
var myUrl = req.url;
console.log(myUrl);
if (myUrl === "/favicon.ico") {
return;
}
var page = myUrl === "/" ? "index.html" : myUrl;
var p = page;
if (!fs.existsSync(path.join(__dirname, "views", p))) { //判断页面是否存在
p = path.join("err", "404.html");
}
var html = fs.readFileSync(path.join(__dirname, "views", p), "utf8");
res.write(html);
res.end();
}).listen("3000", /*"192.168.56.1",*/ function (err) {
if (err) {
console.log(err);
console.log("开启server失败");
return;
}
console.log("开启server成功,IP: 127.0.0.1,Post:3000");
});
createServer(req, res)的回调函数中,两个参数分别代表 request, response。
request 中最常用的就是url,可以取得当前请求的路由。
response 可以输出返回的页面
比如:
- res.write(“dddddddddd”); //直接写字符串内容到页面
注意,必须调用 res.end() 方法,以结束当前的 server 访问。
也可以直接使用 fs 读取到相应的 Html 页面,然后将读取的内容直接输出到页面上:
var index = fs.readFileSync(path.join(__dirname, "views", "index.html"), "utf8");
res.write(index);
res.end();
server,listen(port, [ip], [,cb]) 参数中的IP是可以指定的,但只能指定为当前服务器的IP,指向其他的IP,外部将访问不到。
IP 若是不指定,将使用默认的 127.0.0.1
cb 回调函数中,默认返回的第一个参数,代表error对象,失败了,返回相应的error信息,成功返回null
还没有评论,来说两句吧...