经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Node.js » 查看文章
NodeJS http模块用法示例【创建web服务器/客户端】
来源:jb51  时间:2019/11/5 12:44:58  对本文有异议

本文实例讲述了NodeJS http模块用法。分享给大家供大家参考,具体如下:

Node.js提供了http模块,用于搭建HTTP服务端和客户端。

创建Web服务器

  1. /**
  2. * node-http 服务端
  3. */
  4. let http = require('http');
  5. let url = require('url');
  6. let fs = require('fs');
  7. // 创建服务器
  8. let server = http.createServer((req, res) => {
  9. // 解析请求
  10. let pathname = url.parse(req.url).pathname; // 形如`/index.html`
  11. console.log('收到对文件 ' + pathname + '的请求');
  12. // 读取文件内容
  13. fs.readFile(pathname.substr(1), (err, data) => {
  14. if (err) {
  15. console.log('文件读取失败:' + err);
  16. // 设置404响应
  17. res.writeHead(404, {
  18. 'Content-Type': 'text/html'
  19. });
  20. }
  21. else {
  22. // 状态码:200
  23. res.writeHead(200, {
  24. 'Content-Type': 'text/html'
  25. });
  26. // 响应文件内容
  27. res.write(data.toString());
  28. }
  29. // 发送响应
  30. res.end();
  31. });
  32. });
  33. server.listen(8081);
  34. console.log('服务运行在:http://localhost:8081,请访问:http://localhost:8081/index.html');
  35.  

index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Node http</title>
  6. </head>
  7. <body>
  8. <h1>Hi~</h1>
  9. </body>
  10. </html>
  11.  

运行server.js,打开浏览器访问。

创建客户端

client.js

  1. /**
  2. * node http 创建客户端
  3. */
  4. let http = require('http');
  5. // 请求选项
  6. let options = {
  7. host: 'localhost',
  8. port: '8081',
  9. path: '/index.html'
  10. };
  11. // 处理响应的回调函数
  12. let callback = (res) => {
  13. // 不断更新数据
  14. let body = '';
  15. res.on('data', (data) => {
  16. body += data;
  17. });
  18. res.on('end', () => {
  19. console.log('数据接收完成');
  20. console.log(body);
  21. });
  22. }
  23. // 向服务端发送请求
  24. let req = http.request(options, callback);
  25. req.end();
  26.  

运行server.js,再运行client.js。

希望本文所述对大家node.js程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号