//node中创建http服务需要加载http核心模块
var http = require('http');
var fs = require('fs');
//创建server
var server = http.createServer();
//监听request请求事件
//req接收客户端请求,含有客户端请求参数,信息
//res给客户端发送响应。res.write();res.end();res.setHeader('content-Type','text/plain;charset=utf-8');//解决乱码问题
server.on('request',function(req,res){
var url = req.url;
if(url==='/'){
fs.readFile('./index.html',function(error,data){
if(error){
res.setHeader('content-Type','text/plain;charset=utf-8');
res.end('文件读取错误!');
} else {
res.setHeader('content-Type','text/html;charset=utf-8');
res.end(data):
}
});
}else if(url==='/baby'){
fs.readFile('./baby.jpg',function(error,data){
if(error){
res.setHeader('content-Type','text/plain;charset=utf-8');
res.end('文件读取错误!');
} else {
res.setHeader('content-Type','image/jpeg');
res.end(data):
}
});
}
});
二、node中的js 模块系统
1、核心模块 提供服务器级别的api,nodejs把具有特定功能的代码包装到一个具名的模块中;
2、第三方提供的模块;
3、自定义模块
使用require加载模块,并且执行js代码;
各个模块中的变量只是在模块内有效,不是全局变量,但是我们引用其他模块不只是想执行其他模块的内容,并且要获取其他模块的对象。模块与模块之间是怎么通信的呢?
在每个模块中都提供了一个对象,exports,该对象默认是一个空对象,
把需要被外部访问的成员挂载到exports对象中。
a.js
var ret = require('./b');
console.log(ret.foo);
b.js
var foo='aaa';
export.foo=foo;
ip和端口号:
每一台计算机都有一个物理网卡,在同一局域网里面,网卡都对有一个唯一的访问地址。
每一个网卡都有一个唯一的ip地址与其对应;
ip定位计算机
端口号定位具体的应用程序