一、简单的node服务器搭建

  1、首先新建一个名为server.js的文件(文件名随意,后缀名必须是.js)

  2、粘贴进文件以下内容

  

  1. //引入http模块
  2. const http = require("http");
  3. //第一种
  4. // //使用http创建服务,传入创建服务的参数
  5. // let server = http.createServer((req,res)=>{
  6. // //req:请求参数 res:响应参数
  7. // //路径
  8. // console.log(req.url);
  9. // //请求方式
  10. // console.log(req.method);
  11. // //写入页面
  12. // res.write("hello");
  13. // //结束响应
  14. // res.end();
  15. // });
  16. // //服务器监听8080端口,这里的端口号可以修改
  17. // server.listen(8080);
  18.  
  19. //第二种
  20. // const server = http.createServer();
  21. // server.on("request",function (req,res) {
  22. // console.log(req.url);
  23. // res.write("hello");
  24. // res.end();
  25. // });
  26. // server.listen(8080);
  27.  
  28. //第三种
  29. http.createServer((req,res)=>{
  30. console.log(req.url);
  31. res.write("hello");
  32. res.end();
  33. }).listen(8080);

  3、右键启动服务器出现下图则说明启动成功

  4、访问http:localhost:8080,出现如下现象,说明服务配置成功

  

二、服务器处理get请求 (req.method = GET)

  1、get请求的路径一般为http://localhost:8080?id=3&name=9

  2、

  1. //用服务器处理get请求
  2. //引入http模块
  3. const http = require("http");
  4. //创建服务
  5. http.createServer((req,res)=>{
  6. //我们的访问路径是:http://localhost:8080/index.html?id=3&name=9
  7. //打印出来的req.url是:/index.html?id=3&name=9
  8. console.log(req.url);
  9. //获取参数对象
  10. //方式一:原生的js来获取(不推荐)
  11. // let url = req.url.split("?")[1]; //id=3&name=9
  12. // let arr = url.split("&");
  13. // console.log(arr);
  14. // let paramArr = [];
  15. // let param = {};
  16. // for (let i = 0; i < arr.length; i++) {
  17. // paramArr = arr[i].split("=");
  18. // param[paramArr[0]] = paramArr[1];
  19. // }
  20. // console.log(param);
  21.  
  22. //方式二:使用querystring模块+原生
  23. // const querystring = require("querystring");
  24. // let dataStr = req.url.split("?")[1]; //id=3&name=9
  25. // console.log(dataStr);
  26. // let dataObj = querystring.parse(dataStr);//把字符串转化为对象
  27. // console.log(dataObj);
  28.  
  29. //方式三:使用url+querystring模块
  30. // const url = require("url");
  31. // const querystring = require("querystring");
  32. // let dataStr = url.parse(req.url).query;//获取的是url对象的query的属性值
  33. // let dataObj = querystring.parse(dataStr);
  34. // console.log(dataObj);
  35.  
  36. //方式四:只使用url模块
  37. const url = require("url");
  38. //直接获取url对象的query为对象的值
  39. let dataObj = url.parse(req.url,true).query;
  40. console.log(dataObj);
  41.  
  42. //结束服务器相应
  43. res.end("此次相应结束");
  44. }).listen(8080);

三、处理POST请求

1、处理post请求的页面

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>node处理post请求</title>
  8. </head>
  9. <body>
  10. <form action="http://localhost:8080" method="post">
  11. <input type="text" name="name" id="">
  12. <input type="text" name="age" id="">
  13. <input type="submit" value="提交">
  14. </form>
  15.  
  16. </body>
  17. </html>

2、post请求的处理

  1. //用于处理post请求
  2. const http = require("http");
  3. const server = http.createServer((req,res)=>{
  4. //创建数组用于存储参数
  5. let arr = [];
  6. //开始接受数据参数
  7. req.on("data",(buffer)=>{
  8. arr.push(buffer);
  9. });
  10. //终止接受参数
  11. req.on("end",()=>{
  12. let buffer = Buffer.concat(arr);//获取到的是buffer
  13. let dataStr = buffer.toString(); //name=111&age=2222
  14. const querystring = require("querystring");
  15. let dataObj = querystring.parse(dataStr);
  16. console.log(dataObj);
  17.  
  18. });
  19. res.end();
  20. }).listen(8080);

三、文件处理的fs模块

  1、fs :file system的缩写

  2、

  1. //对于文件进行读取的服务器
  2. const http = require("http");
  3. //加载fs模块
  4. const fs = require("fs");
  5. const server = http.createServer((req,res)=>{
  6. //使用fs进行异步读取文件,路径写的为绝对路径(异步常用)
  7. // fs.readFile("E://x.txt", "utf8",(err, data) => {
  8. // //文件读取时可以添加utf8编码,使其不乱码,或者打印数据时进行utf8编码
  9. // // fs.readFile("E://x.txt", "utf8", (err, data) => {
  10. // if (err) {//如果读取出现错误
  11. // console.log(err);
  12. // } else {
  13. // //获取的数据data需要进行编码,或者文件读取时可以添加utf8编码,使其不乱码
  14. // console.log(data.toString("utf8"));
  15. // }
  16. // });
  17. //把文件写入进去(覆盖的形式),没有的话会自动创建
  18. // fs.writeFile("E://y.txt","abddd",(err)=>{
  19. // if (err) {//出现错误时,报异常
  20. // console.log(err);
  21. // throw err;
  22. // } else {
  23. // console.log("写入成功");
  24.  
  25. // }
  26. // });
  27. //不覆盖的方式添加,有就加,没有就创建
  28. // fs.writeFile("E://m.txt","data",{flag:"a"},(err)=>{
  29. // if (err) {
  30. // throw err;
  31. // } else {
  32. // console.log("写入成功");
  33.  
  34. // }
  35. // });
  36. //只是添加,没有就创建
  37. // fs.appendFile("E://yo.txt","我是新来的",(err)=>{
  38. // if (err) {
  39. // throw err;
  40. // } else {
  41. // console.log("追加成功");
  42.  
  43. // }
  44. // });
  45. //把读取的数据添加进去(异步,在回调函数中写入)
  46. // fs.readFile("E://x.txt","utf8",(err,data)=>{
  47. // if(err){
  48. // throw err;
  49. // }else{
  50. // fs.writeFile("E://bs.txt",data,{flag:"a"},(err)=>{
  51. // if (err) {
  52. // throw err;
  53. // } else {
  54. // console.log("写入成功");
  55.  
  56. // }
  57. // });
  58. // }
  59. // });
  60.  
  61. //使用fs同步读取文件,有返回值,用的比较少
  62. let data = fs.readFileSync("E://x.txt","utf8");
  63. fs.writeFileSync("E://tb.txt",data,{flag:"a"},(err)=>{
  64. if (err) {
  65. throw err;
  66. } else {
  67. console.log("写入成功");
  68.  
  69. }
  70. });
  71.  
  72. res.end(function () {
  73. console.log("请求结束");
  74.  
  75. });
  76.  
  77. }).listen(8080);

  

2、node服务器的更多相关文章

  1. 手把手教你从购买vps到搭建一个node服务器

    要准备什么? 1.5刀 2.最好有FQ软件(可以用蓝灯) let's Go! 一.vps购买 vps可以选择digital ocean(do) 链接 ,由于是外国网站,响应比较慢,所以最好翻个墙. g ...

  2. webstorm搭建node服务器

    前言,搭建服务器,必须有node.js环境(吐槽:本来就是用node搭建的(⊙o⊙)…) 下载node.js 网址  https://nodejs.org/en/ 先新建项目: 这里选择Node.js ...

  3. 设置node服务器的端口及运行环境

    一般来说,node服务器中通常会看到这样的代码: ``` app.set('port', process.env.PORT || 3000); if ( process.env.NODE_ENV == ...

  4. koa-static node服务器设置静态目录

    最近毕设需要用到上传照片,但当node服务器成功获取前端传来的图片时,又不知道如何在页面获取服务器image目录下的图片,一直报以下错误: 问题主要是无法找到图片url,虽然可以一个个在app.js文 ...

  5. 上传图片,通过node服务器存储在指定目录

    最近做毕设,需要上传图片,因为在本地服务器运行,所以想着前端上传后,通过node服务器接收图片,存储在指定的目录下. 一.前端实现 1.前端的页面和上传图片是利用element-ui组件实现的,&qu ...

  6. 亚马逊EC2服务器申请+NODE服务器部署+阿里云域名申请+SSL证书使用

    最近,由于项目需要,自己申请了一台亚马逊用于部署网站测试,在使用期间,发现网上没有一篇非常完整的文章讲解从服务器申请到域名解析,SSL证书申请的整个流程.所以自己总结一下,以供大家学习! 一.亚马逊E ...

  7. 使用express创建node服务器的两种方法及区别

    使用express创建node服务器有两种方法,如下所示: 方法一: var express = require('express'); var app = express(); app.listen ...

  8. 搭建一个最简单的node服务器

    搭建一个最简单的node服务器 1.创建一个Http服务并监听8888端口 2.使用url模块 获取请求的路由和请求参数 var http = require('http'); var url = r ...

  9. 创建简单的node服务器

    昨天咱们说了封装ajax,今天咱们说一下 自己创建一个建议的node服务器: 话不多说直接上代码: var http = require('http') //对URL 解析为对象//1.导入模块 UR ...

随机推荐

  1. 0926CSP-S模拟测试赛后总结

    又一次垫底.持续低迷.20分. 赛时状态还可以.但是过于保守而不思进取.三道题目打了暴力就滚粗了. 暴力还挂掉了. T1暴力因为开小了数组挂成了0.1000的点,子序列个数我开了1e5以为足够了.结果 ...

  2. linux下phpstudy安装

    linux下phpstudy安装 一.总结 一句话总结: 就是下载然后一步步用指令安装即可 二.linux下phpstudy安装 参考:linux下phpstudy安装https://www.cnbl ...

  3. mysql中geometry类型的简单使用

    mysql中geometry类型的简单使用 编写本文的目的: 让和两天前的我一样的初学者,能够更快的使用geometry类型存储空间点数据    也是为了自己加深印象,更熟练的使用geometry类型 ...

  4. Docker系列(五):Docker网络机制(上)

    Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.se ...

  5. 适AT maven多个子项目、父项目之间的引用问题

    适AT   maven多个子项目.父项目之间的引用问题 在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己 ...

  6. Mysql配置innodb_flush_log_at_trx_commit

    当innodb_flush_log_at_trx_commit被 设置为0,日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作.当这个值为1(默认值)之 ...

  7. Java必备的几个开发工具,你会几个?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 以下是Java技术栈微信公众号发布的所有关于 Java 常用工具干货,会从以下几个方面汇总,本文会长期更新. 开发工具篇 M ...

  8. selenium基础(元素定位)

    selenium的帮助文档: https://selenium-python.readthedocs.io/api.html#module-selenium.common.exceptions 目前支 ...

  9. 设置编辑工具UltraEdit的背景色为护眼颜色

    1.视图--->主题--->管理主题---> 2.--->编辑器--->纯文本--->第二个框(背景色) 3.--->规定自定义颜色--->建议(色调: ...

  10. mysql出现ERROR 1366 (HY000):的解决办法

    今天向新建的表中添加内容,出现以下错误: mysql> INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_sho ...