1.创建服务器
//require表示引包,引包就是引用自己的一个特殊功能
var http = require("http");
//创建服务器,参数是一个回调函数,表示如果有请求进来,要做什么
var server = http.createServer(function(req,res){
//req表示请求,request; res表示响应,response
//设置HTTP头部,状态码是200,文件类型是html,字符集是utf8
res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
res.end("哈哈哈哈,我买了五个iPhone" + (1+2+3) + "s");
});
//运行服务器,监听3000端口(端口号可以任改,此时的是‘127.0.0.1’)
server.listen(3000,"127.0.0.1");
- 1.1.4 HTTP模块
Node.js中,将很多的功能,划分为了一个个mudule,大陆的书翻译为模块;台湾的书,翻译为模组。
这是因为,有一些程序需要使用fs功能(文件读取功能),有一些不用的,所以为了效率,你用啥,你就require啥。
1.1.5 URL模块
我们现在来看一下req里面能够使用的东西。
最关键的就是req.url属性,表示用户的请求URL地址。所有的路由设计,都是通过req.url来实现的。
我们比较关心的不是拿到URL,而是识别这个URL。
识别URL,用到url模块
假设我们访问http://127.0.0.1:3000/hcd?name=1
则console.log(url)为:
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '',
query: {},
pathname: '/hcd?name=1',
path: '/hcd?name=1',
href: '/hcd?name=1'
}
4.1.1.7 fs模块
fs. mkdir()创建文件夹
fs.stat(path, callback) 查看path路径的文件的状态,callback为查看完后的回调函数
3.读取文件或者文件夹
读取文件:
fs.readFile('/etc/passwd', (err, data) => {
if (err) throw err;
console.log(data);
});
4.更改文件的名字
fs.rename([oldpath],[newpath],callback)
5.### 1.1.8 path模块
API http://nodejs.cn/api/path.html#path_path_extname_path
path.extname() 方法返回 path 的扩展名,
即从 path 的最后一部分中的最后一个 .(句号)字符到字符串结束。 如果 path 的最后一部分没有 . 或 path 的文件名(见 path.basename())的第一个字符是 .,则返回一个空字符串。
6.node.js 实时聊天,客户端逻辑强大的单页APP
- node 单线程, 异步回调解决高并发的场合