经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Node.js » 查看文章
Node.js学习之(第三章:简易小demo)
来源:cnblogs  作者:pubdreamcc  时间:2019/5/5 8:58:11  对本文有异议

前言

我们前面已经学习完了Node中一些核心模块还有如何正确配置响应头的Content-Type,今天我们来实现一个简单的demo,巩固下之前学习的内容。

需求

我们平时访问百度或者其他大的门户网站的时候,服务器给我们返回的基本都是一个HTML文档,然后浏览器解析渲染成页面。

今天我们就用Node.js来搭建一个简单的web服务器实现上面的类似效果。

主体

  1. 创建一个文件夹baidu,并且在里面创建子文件夹resourceresource文件夹用来存放我们服务器上的资源文件,比如图片(xxx.jpg),html文档(index.html)等等。这里我就放置一张图片和一个index.html文档。

  1. 我们在baidu文件夹下创建服务器脚本文件server.js,代码如下:
  1. let http = require('http') // 引入http核心模块,创建web服务器
  2. let fs = require('fs') // 引入fs核心模块,操作服务器资源文件
  3. let server = http.createServer()
  4. server.on('request', (req, res) => {
  5. let url = req.url
  6. if (url === '/') {
  7. fs.readFile('./resource/index.html', (error, data) => {
  8. if (error) {
  9. res.setHeader('Content-Type', 'text/plain; charset=utf-8')
  10. res.end('你要的资源不存在,请稍后再试!')
  11. } else {
  12. res.setHeader('Content-Type', 'text/html; charset=utf-8')
  13. res.end(data)
  14. }
  15. }) // 当请求路径为‘/’,返回index.html文档,所以这里需要借助fs.readFile()来读取文档内容
  16. } else if (url === '/img') {
  17. fs.readFile('./resource/05.jpg', (error, data) => {
  18. if (error) {
  19. res.setHeader('Content-Type', 'text/plain; charset=utf-8')
  20. res.end('你要的资源不存在,请稍后再试!')
  21. } else {
  22. res.setHeader('Content-Type', 'image/jpeg')
  23. res.end(data)
  24. }
  25. }) // 同理,这里也需要对文档的操作
  26. } else {
  27. res.end('404 NOT FOUND')
  28. }
  29. })
  30. server.listen(3000, () => {
  31. console.log('服务器已经启动,可以访问了。。。')
  32. })
  1. 在Node环境下启动server.js,看到效果如下:

经过这样,我们就实现了一个简易的web服务器,并且返回一个html文档给浏览器解析了

说明

本仓库是自己Node.js学习过程的真实记录,以后会每天更新一些新的知识点,希望可以对想要学Node.js的同学有一些帮助,欢迎star,你们的点赞是我更新的持久动力。同时如果你觉得本仓库中的一些知识点有错误也可以issue我,方便后期我订正!

本仓库同时在博客园和掘金更新,欢迎写博客的朋友一起学习交流。

博客园

找我

掘金

找我

GitHub

找我

原文链接:http://www.cnblogs.com/dreamcc/p/10809752.html

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

本站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号