Node.js_express_搭建一个服务器
原生 node 服务器
1. 导入 node.js 核心模块 / 自带模块 : http
const http = require('http'); // HTTP 库所具有的功能已经赋给了 http 对象
const querystring = require('querystring'); // 查询字符串
2. 通过 http 模块 的方法创建服务器
Node 本身就是 Web 服务器
// 调用 HTTP 模块的一个工厂模式方法 http.createServer() 来创建新的 HTTP 服务器
// 每当一个新的访问请求到达 Web 服务器,它都将调用我们指定的函数方法来处理
// 新创建的 HTTP 服务器并没有赋值给任何变量,它只会成为存活在全局范围内的匿名对象
// 传了一个匿名函数作为参数。此函数绑定在新创建服务器的事件监听器上,进行 request 事件处理
const server = http.createServer(function (request, response) {
// response.writeHead(200, {'Content-Type': 'text/plain'});
response.setHeader('Content-Type', 'text/html;charset:utf-8'); console.log(request.url);
const url = request.url;
// const query = url.split('?')[1].split('&')[0]; // username=Ryen
const query = url.split('?')[1] // username=Ryen&password=123456
querystring.parse(query); // {"username": 'Ryen', "password": '123456'} // end 方法将会关闭 HTTP 连接。但因为我们同时还传入了一个字符串
response.end('Hello World\n'); // end 方法将在把此内容发送给客户端后才关闭连接
});
回调函数的参数 是两个对象
// 一个是请求的对象 request
// 如果在浏览器输入 http://127.0.0.1:8124?username=Ryen&password=123456'
// 浏览器 会发送个请求给 服务器
// 以 '?' 开头的字符串,叫做 查询字符串
// 里面的每个字段都是 key=value
// 多个字段以 & 连接
// 一个是响应的对象 response // 调用了 response 对象的几个方法,这将修改响应结果
// 必须调用 response.writeHead() 或者 response.setHeader() 来设置 HTTP 响应头
// 设置状态代码为 200(表示 HTTP 状态代码“200 OK”),并且传入一段 HTTP 头描述
3. 监听端口号,启动服务器
server.listen(8124, "127.0.0.1"); // 初始化启动服务器,并告诉它监听在 8124 端口
console.log('Server running at http://127.0.0.1:8124/'); // 将在标准输出 stdout 上打印信息
node.js + express 服务器(进公司一般都是结合框架)
npm init
"name": hello_node_server
npm install express
1. 导入 express 模块
const express = require('express');
2. 创建 app 应用对象
const app = express();
3. 写业务逻辑:处理请求,返回响应
app.get('/', (request, response)=>{
console.log(request.query);
response.send('Hello Node Express!');
});
4. 监听端口号:一个端口号 有且只能运行 一个程序
app.listen(3000, err=>console.log(err?err:'服务器启动成功!'));
根据代码实时显示效果
Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,
而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置)。
Node.js的这种设计虽然有利于提高性能,却不利于开发调试,
因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启
- npm install -g supervisor
- 或者 yarn global add supervisor
- supervisor app.js
- 当代码被改动时,运行的脚本会被终止,然后重新启动。
Node.js_express_搭建一个服务器的更多相关文章
- 如何使用Node.js搭建一个服务器
在node环境中运行下面的代码 "use strict"; const http = require("http"), path = require(" ...
- 使用 Node.js 搭建 Web 服务器
使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块.文件系统.url解析模块.路径解析模块.以及301重定向技术等, ...
- nodejs 简单的搭建一个服务器
前言: nodejs 主要是后台语言 node 是在终端运行的,所以他可以进行 dos 命令 模块 自定义 JavaScript 是前台语言 nodejs 是 也是使用我们的 JavaScript ...
- 学习 node.js 搭建web服务器
开始 学习使用 node.js 首先完成搭建一个 web服务器.myweb.js var http = require('http'); var url = require('url'); var h ...
- 三分钟使用webpack-dev-sever搭建一个服务器
webpack-dev-server是一个小型的Node.js Express服务器,我们可以通过它搭建一个本地服务器,并且实现文件热更新; 1.切换到你的目录下对项目进行初始化 npm init 一 ...
- 用node.js搭建本地服务器
我的第一篇笔记来写写node.js,我对node.js的并不是很了解,基本的项目路径变换还是会的.原先我下载node.js就是我想学vue.js,后来因为工作的繁忙搁浅了我的计划.最近在学习phase ...
- node.js搭建Web服务器
Node.js 博客搭建 一. 学习需求 Node 的安装运行 会安装node,搭建node环境 会运行node. 基础模块的使用 Buffer:二进制数据处理模块 Event:事件模块 fs:文件系 ...
- 使用原生node.js搭建HTTP服务器,支持MP4视频、图片传输,支持下载rar文件
前言 如何安装node.js,如何搭建一个简易的http服务器我这里就不再赘述了,不懂的同学可以先去学习一下.当然了,我写的也就属于简易版的增强版,大家有什么高见的欢迎提出,然后进入正题. 目录结构 ...
- 用node.js搭建一个静态资源站 html,js,css正确加载 跳转也完美实现!
昨天买了一个服务器想着用来测试一些自己的项目,由于是第一次建站,在tomcat,linux,node.js间想了好久.最终因为node搭建比较方便没那么麻烦就决定用node.js来搭建网站项目. 搭建 ...
随机推荐
- 跨站请求伪造 | ajax
一.简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功 ...
- SpringBoot系列: JdbcTemplate 快速入门
对于一些小的项目, 我们没有必要使用MyBatis/JPA/Hibernate等重量级技术, 直接使用Spring JDBC 即可, Spring JDBC 是对 jdbc的简单封装, 很容易掌握. ...
- 高并发秒杀系统--SpringMVC整合
[SpringMVC运行流程] [Handler注解映射技巧] [请求方法的细节处理] 1.如何处理请求参数和方法参数的绑定? 2.如何限制方法接收的请求方式? 3.如何进行请求转发和重定向? 4.如 ...
- win10安装VMware v14.1.1.28517
一.下载 VMware v14.1.1.28517 下载地址(包含安装说明):http://www.downza.cn/soft/74728.html 二.VMware Workstation 14 ...
- Leetcode#88. Merge Sorted Array(合并两个有序数组)
题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...
- Spring系列(五) 容器初始化过程源码
IoC/DI 的概念 容器是Spring的核心之一(另一个核心是AOP). 有了容器, IOC才可能实现. 什么使IoC? IoC就是将类自身管理的与其由依赖关系的对象的创建/关联和管理交予容器实现, ...
- mysql-8.0.11安装步骤
1.下载好安装包:mysql-8.0.11-winx64.zip 2.解压到合适的目录,例如:C:\XQ\Soft\mysql-8.0.11-winx64 3.在目录下创建my.ini文件,配置bas ...
- python3编程练习题
记录一些基础编程练习题和一些遇见的坑 1)输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz.同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in r ...
- JQuery EasyUI 初始
基于jQuery的用户界面插件集合 1. jQuery easyui提供了一个完整的组件的集合,包括强大的DataGrid,树网格,面板.用户可以使用他们一起,或者只是用一些组件,组合和构建他想要的跨 ...
- Lua中的协同程序
[前言] 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西.从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的 ...