Node.js是一个让JavaScript运行在服务器端的开发平台 参考文章
nodejs特点:
- 单线程
- 异步非阻塞i/o(异步相对节省资源,把那个等待的时间利用上了)
- 事件驱动
- 稳定性差(因为是单线程的,所以一旦哪里出现问题了,整个服务都要终止)
npm是nodejs的包管理工具,参考其他博客
nodejs Windows下的安装。
接下来nodejs的使用:(写好代码后在文件所在目录使用命令行输入: node 文件名 即可运行。)
//引入内置的http包 var http = require('http'); //创建服务 var server = http.createServer(function(req,res){ //这里的匿名函数参数req是(request)请求,res(response)是响应 res.end(1111); //注意这里 括号里不管是什么都要加上‘引号’ }); console.log('ok'); //端口监听 server.listen(8080);
可以看到OK,说明启动成功。但是遇到一个问题,就是在浏览器上输入localhost:8080,找不到服务器
找到问题根源了,竟然是因为res.end(1111);没有加引号,我。。。TM。。。。以为数字不需要加引号,没想到nodejs如此特殊。res.end(111)改成res.end('111');就OK了。
获取请求的参数:
- 获取请求方式:var method = req.method;
- 获取请求路径:var url = req.url;
- 获取http版本号:var version = req.httpVersion;
- 获取请求头信息:var headers = req.headers; //这个是数组
- 对于头信息,如果想要获取某个值,可以使用 . 或者 [ ] 来访问,如果数组键名含有 - ,那么只能用 [ ] 来访问。比如 var userAgent = headers[user-agent]; 查看头信息可以使用console.log(headers); 在命令行中可以看到。(修改服务端代码,启动服务之后,刷新浏览器)
- 解析URL:第一步需要先引入 var urlTool = require('url'); 然后 var data = urlTool.parse(url); 第一个参数URL是获取的请求路径。可以传第二个参数:true。作用是将解析后的部分字符串数据转换成对象。