回调函数! 前面加载的模块都是回调函数。 下面的就是一个 可以通过localhost访问到 自己电脑里面的文件 的服务器 基本模型(我觉得是)
<!--基本结构 -->
var http = require('http');
<!--req用户请求 res服务器响应-->
http.createServer(function(res,req){}).listen('端口号',function(){成功启动服务器后想要执行的操作 一般是写 console.log('http://localhost:9797');
打印一下 服务器的地址})
那个端口号有范围的
kenqiuer+c 就是停止服务器
访问流程自己理解的就是 用户输入地址 =>一个什么东西接收到 然后找到对应的服务器 => 服务器根据地址 找静态文件 需要数据就去数据库里面找 需要其他的都是根据地址来找(好像叫做路由)
path 模块 拼接路径用的
fs 模块 对文件进行操作 建立文件夹啊 读取文件啊 之类的
mime 是获取静态的文件 比如说 html的 css js 图片 它可以根据服务器的请求地址 来找你文件夹里面的文件 such as
/css/index.css 他就直接去找了
现在都要用if语句来判断用户请求的路径来是服务器响应相应的东西 但是我感觉以后应该还有更简便的方法 拭目以待咯
这个就是给res的对象添加了一个属性 这个属性就是可以通过用户访问的 地址来访问 你自己建立的文件夹下面的文件
render 自己起的名字 这是一个闭包函数(我也不知道啥是闭包)但是这样不用给function传res参数。
res.render = function (filename) {
fs.readFile(filename, function (err, data) {
if (err) {
res.setHeader(404, 'Not Found', {
'Content-Type': 'text/html;charset=utf-8 '
});
res.end('404,not found')
}
res.setHeader('Content-Type', mime.getType(filename));
res.end(data)
});
}
var http = require('http');
var fs = require('fs');
var path = require('path');
var mime=require('mime')
http.createServer(function (req, res) {
req.url = req.url.toLowerCase();
req.method = req.method.toLowerCase();
res.render = function (filename) {
fs.readFile(filename, function (err, data) {
if (err) {
res.setHeader(404, 'Not Found', {
'Content-Type': 'text/html;charset=utf-8 '
});
res.end('404,not found')
}
res.setHeader('Content-Type', mime.getType(filename));
res.end(data)
});
}
if (req.url === '/n') {
res.render(path.join(__dirname,'index.html'))
}
else if (req.url === '/index' || req.url === '/' && req.method === 'get') {
res.render(path.join(__dirname, 'yxlmm', 'index.html'))
}
else if (req.url === '/n' || req.url === '/' && req.method === 'get') {
res.render(path.join(__dirname,'index.html'))
}
else if (req.url.startsWith === '/add' && req.method === 'get') {
console.log(req.url);
res.end(00)
}
else if ((req.url.startsWith('/video') || req.url.startsWith('/css') || req.url.startsWith('/image') || req.url.startsWith('/js') || req.url.startsWith('/jquary')) && req.method === 'get') {
res.render(path.join(__dirname,'yxlmm', req.url))
}
else {
res.writeHead(404, 'NOT Found', { 'Cont-TYpe': 'text/html;charset=utf-8' });
res.end('404,Page Not Found.')
}
}).listen(9797, function () {
console.log('http://localhost:9797');
})