node.js是一门服务端的语言,下面讲讲如何利用node.js提供给我们的api来搭建服务器,并且访问静态网页

项目结构如下

----------------------------------------------------------------

第一步

首先你得安装node环境

第二步

利用node.js提供的api来建一个自己的服务器,其实就几行代码,如下

// require这些东西都是调用node环境中的包,只要有node环境,这些require的模块都是默认被安装进去了,就可以直接这样写
// node支持ES6的写法,下面的就是ES6的写法,不需要额外使用插件来把ES6转ES5,很方便 let http = require('http')
let url = require('url')
let util = require('util')
let fs = require('fs') // http库是node提供的api,可以直接上node的中文网,直接看到各种api
let server = http.createServer((req, res) => { // 通过你在浏览器输入的网站,利用url.parse进行解析成一个对象,再读取其中pathname的属性
// 例如你输入http://localhost:8080/index.html,然后url.parse(req.url).pathname返回的值为 "/index.html"
var pathname = url.parse(req.url).pathname
console.log('file:' + pathname.substring(1))
// fs,文件系统,读取文件
fs.readFile(pathname.substring(1), (err, data) => {
if (err) {
// 错误就返回404状态码
res.writeHead(404, {
'Content-Type': 'text/html'
})
} else {
// 成功读取文件
res.writeHead(200, {
'Content-Type': 'text/html'
})
// 展示文件数据
res.write(data.toString())
}
// 注意,这个end 一定要放在读取文件的内部使用
res.end(util.inspect(url.parse(req.url)))
})
}) server.listen(3000, '127.0.0.1', () => {
console.log('服务器已经运行,请打开浏览器,输入:http://127.0.0.1:3000/来访问')
})

第三步

在同级文件夹下创建一个html页面,例如index.html,代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>大家快来访问我呀!</h2>
</body>
</html>

  

第四步

使用命令行工具,进入到server文件夹,然后输入

node Server.js

第五步

打开浏览器,输入http://localhost:3000/index.html,访问服务器

效果如下:

怎么样,一个服务器就几行代码就能成功建立起来了,并且能够通过url方式来访问对应位置的网页资源,node.js真的很简洁,很好用呀~~

---end---

【Node.js】利用node.js搭建服务器并访问静态网页的更多相关文章

  1. JS利用 Sea.js 实现模块化:拖拽、缩放及范围限制

    知识点总结: Sea.js的使用:define.export.seajs.use.require等方法:   参考:http://seajs.org/docs/ Sea.js与require.js的区 ...

  2. Flask02 路由的书写、蓝图、利用蓝图实现url前缀、利用蓝图实现子域名、访问静态文件

    1 书写路由的两种方法 1.1 利用Flask实例对象的 add_url_rule 方法实现 该方法有一个必填参数,两个默认参数 · rule : 请求路径的规则 endpoint : 端点,默认值是 ...

  3. 使用node.js在sublime text3搭建服务器

    问题描述: 使用node.js在sublime text3中搭建好服务器后,第一次使用“ctrl+b”运行服务器没有问题,如图所示 如果想对test.js中的内容做些许修改,保存后再使用“ctrl+b ...

  4. JS利用HTML5的Web Worker实现多线程

    需求:有一个长时间的斐波拉契的计算希望放在分线程中计算,计算的得到结果后再返回给主线程展示,再计算的时候不冻结页面 var number = 55;//传入分线程的参数 var worker = ne ...

  5. koa2搭建服务器+使用mongoose链接mangodb

    使用node搭建服务器,用到了现在比较流行的框架koa. 1.初始化package.json npm init -y 2.安装koa2 npm i koa --save 3.搭建服务器 const K ...

  6. 利用Node.js对某智能家居服务器重构

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 之前负责过一个智能家居项目的开发,外包重庆一家公司的,我们主要开发服务器监控和集群版管理. 移动端和机顶盒的远程通信是用 ...

  7. node.js 安装方法 以及 用原声搭建服务器

    node.js 安装方法: 第一步: 64位的安装包网址:   https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi 第二步: 进入命令提示框  输入 ...

  8. Node.js学习笔记 01 搭建静态服务器

    希望这篇文章能解决你这样一个问题:“我现在已经了解了一些Node.Js基本概念了,怎么搭一台静态服务器呢?” 请参考一下博主的前两篇文章: 完全面向于初学者的Node.js指南 Node.Js的Mod ...

  9. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

随机推荐

  1. springmvc ajax tomcat简单配置实现跨域访问

    发现一种改动最小也能实现跨域请求的方法 服务端 服务端修改web.xml配置文件, 增加过滤器 (不用导入任何jar包, 用的tomcat自带jar) <!-- 支持跨域请求 --> &l ...

  2. 【安全性测试】drozer中关于AttackSurface的一些理解

    在推荐扫描Android APP的工具中,扫描组件可以推荐drozer.使用过drozer的使用者知道,如何查找各个组件上的攻击层面 run app.package.AttackSurface . 它 ...

  3. 13-事务&数据库连接池&DBUtiles

    事务&数据库连接池&DBUtils 事务 Transaction  其实指的一组操作,里面包含许多个单一的逻辑.只要有一个逻辑没有执行成功,那么都算失败. 所有的数据都回归到最初的状态 ...

  4. VMware手动添加centos7硬盘图文操作及分区超详细

    先设置虚拟机 启动的虚拟机,新关机再设置 1.选择指定虚拟机,点击硬盘 2.虚拟机设置,点击左下角“添加” 3.硬件类型选择硬盘,点击下一步 4.添加硬件向导默认就行,下一步 5.选择磁盘,默认选中, ...

  5. c#提交事务的两种方法

    1. using (TransactionScope ts = new TransactionScope()) { 除非显示调用ts.Complete()方法.否则,系统不会自动提交这个事务.如果在代 ...

  6. mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement解决方法

    本文为大家讲解的是mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot execut ...

  7. Jquery weui picker 支持label和value

    万年没更新了. 最近用jquery weui. 在使用picker时需要一些问题. 就是让picker 显示label, 但是取值的时候取value用于存储. 官网例子如下 Jquery-weui 官 ...

  8. Java当中的线程

    1.进程和线程 进程和线程之间是什么关系 多进程:在操作系统中能(同时)运行多个任务(程序) 多线程:在同一应用程序中有多个顺序流(同时)执行 线程的执行过程 2.定义线程的方法 方法1: 定义一个线 ...

  9. 找一个数组的最大和的连续子数组(时间复杂度 O(n))

    设计思想 一开始的思想是求出全部的情况,再分别比较大小,这种方法适用于有限个数组,不适用于输入数组长度和内容的情况. 但也试着做了 int a[]= {-1,2,6,-10}; int size=4; ...

  10. scala Weak Conformance

    Weak Conformance In some situations Scala uses a more general conformance relation. A type S weakly ...